未解析的外部符号“;void __cdecl boost::tss_cleanup_implemented(void)&

unresolved external symbol "void __cdecl boost::tss_cleanup_implemented(void)"

本文关键字:void tss cleanup implemented boost 外部 符号 cdecl      更新时间:2023-10-16

当我试图搜索这个错误时,我非常惊讶,因为我只得到了4个结果,其中两个似乎是中文的。我在编译我的项目和boost源代码时遇到了这个错误。我搜索了boost库,发现了这个:

namespace boost
{
    /*
    This file is a "null" implementation of tss cleanup; it's
    purpose is to to eliminate link errors in cases
    where it is known that tss cleanup is not needed.
    */
    void tss_cleanup_implemented(void)
    {
        /*
        This function's sole purpose is to cause a link error in cases where
        automatic tss cleanup is not implemented by Boost.Threads as a
        reminder that user code is responsible for calling the necessary
        functions at the appropriate times (and for implementing an a
        tss_cleanup_implemented() function to eliminate the linker's
        missing symbol error).
        If Boost.Threads later implements automatic tss cleanup in cases
        where it currently doesn't (which is the plan), the duplicate
        symbol error will warn the user that their custom solution is no
        longer needed and can be removed.
        */
    }
}

我的问题是什么是tss清理,为什么需要它以及我如何实现它。

我不知道TSS,但要修复这个链接器错误,您需要定义

BOOST_THREAD_WIN32

BOOST_THREAD_BUILD_LIB

因此CCD_ 1实现缺失功能(空)。

我认为互联网上很少有关于这个问题的结果,因为构建场景很少。大多数人不会在自己的项目中构建boost,而是使用b2构建boost。