我正在使用Boost 1.53.0的以下组件和C ++ 11库...
根据this answer,我不需要链接库来使用Boost的这些部分。根据{{3}},signals2也应该只是标题。但是,我仍然收到链接器错误...
Undefined symbols for architecture i386:
"boost::system::system_category()", referenced from:
___cxx_global_var_init2 in Main.o
...
"boost::system::generic_category()", referenced from:
___cxx_global_var_init in Main.o
___cxx_global_var_init1 in Main.o
...
为什么?
答案 0 :(得分:2)
Boost.Signals2确实是仅限标题,但是Boost.System is not。您必须确保您对该库没有任何依赖性。如果它在你自己的代码中,你必须构建Boost.System并链接它。如果从任何仅限标题的Boost库调用它,file a bug report。
答案 1 :(得分:2)
问题是虚假的
#include <boost/thread/mutex.hpp>
意外地遗留在文件中间。