【发布时间】:2013-06-03 14:29:53
【问题描述】:
我将 Boost 1.53.0 的以下组件与 C++11 库结合使用...
- boost::signals2::scoped_connection
- boost::signals2::signal
- boost::signals2::connection
- boost::math::constants
- boost::circular_buffer
- boost::lexical_cast
根据this answer,我不需要链接库来使用Boost 的这些部分。根据this answer,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
...
为什么?
【问题讨论】:
-
快速浏览 Boost 1.53.0 中 Signals2 的文档也说它只是标题。我有理由相信其他人也是。但是...您确定在该列表中也没有Boost.Asio吗?这需要与 Boost.System 链接以获取其错误代码。
-
您刚刚排除了有趣的部分:
referenced from: ...来自哪里?该部分将为您提供有关库/函数调用 Boost.System 的信息 -
@ArneMertz 添加了一些细节。 .其余的是给出相同
___cxx_global_var_init类型消息的其他文件列表 -
请给我们完整的编译器错误,以及您的 Boost 包的完整列表。例如。如果我没记错的话,Boost.Asio 也使用 Boost.system
-
问题已解决。 .见答案。该死,我觉得自己很愚蠢:S 谢谢大家
标签: c++ boost c++11 header linker-errors