当我试图搜索这个错误时,我非常惊讶,因为我只得到了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清理,为什么需要它,以及我如何实现它。
发布于 2020-01-04 22:09:44
我不知道TSS,但是要修复这个链接器错误,您需要定义
BOOST_THREAD_WIN32和
BOOST_THREAD_BUILD_LIB所以boost/thread/src/win32/tss_pe.cpp实现了缺失的函数(empty)。
我假设这个问题在Internet上几乎没有结果,因为构建场景很少见。大多数人不会在自己的项目中构建boost,而是使用b2构建boost。
https://stackoverflow.com/questions/33916672
复制相似问题