2

我将 Boost 1.53.0 的以下组件与 C++11 库结合使用...

  • boost::signals2::scoped_connection
  • 升压::信号2::信号
  • 升压::信号2::连接
  • 提升::数学::常量
  • boost::circle_buffer
  • boost::lexical_cast

根据这个答案,我不需要链接库来使用 Boost 的这些部分。根据这个答案,信号2也应该是仅标头。但是,我仍然收到链接器错误...

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
  ...

为什么?

4

2 回答 2

2

问题是虚假的

#include <boost/thread/mutex.hpp>

不小心留在了文件的中间。

于 2013-06-07T11:09:25.630 回答
2

Boost.Signals2 确实只有标头,但Boost.System 不是。您必须确保您对该库没有任何依赖关系。如果它在您自己的代码中,您必须构建 Boost.System 并链接它。如果它是从任何仅包含头文件的 Boost 库中调用的,请提交错误报告

于 2013-06-07T10:51:46.180 回答