【发布时间】:2014-03-04 16:24:23
【问题描述】:
当我将 boost/log 标头包含到源文件中时出现链接错误。
错误 5 错误 LNK2019:无法解析的外部符号“类 boost::system::error_category const & __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAAEBVerror_category@12@XZ) 引用 在函数“void __cdecl boost::system::`动态初始化器中 'native_ecat''(无效)“ (??__Enative_ecat@system@boost@@YAXXZ) C:\Users\lukas\Documents\Visual Studio 2013\Projects\MyFilter\MyFilter\MyFilter.obj MyFilter
所以似乎是我没有链接系统库的问题。但是,我将链接库包含路径设置为包含 boost 库。 该文件是
libboost_system-vc120-mt-1_55.lib
并且位于 D:\Program Files (x86)\boost_1_55_0\stage\lib - 所以应该可以工作。
那么为什么 Visual Studio 不将其链接到应用程序?或者实际上有几个应该编译的boost系统lib文件?
【问题讨论】:
-
您是否添加了附加库目录的路径?库的版本是否正确? x86 到 x86 项目?
-
是的,我做到了。当我只使用日志库的 trivial.hpp 文件时,我实际上可以构建应用程序。但是其他的不起作用,因为它们依赖于系统库
-
版本也正确吗?你用的是什么目标?有 CPU 吗?
-
我运行的是 64 位机器,但我不确定 boost 是否编译为 x64
-
如果路径正确,我真的相信这是版本问题。要编译不同的库,请使用 (x86)
b2 --toolset=msvc-10.0 --build-type=complete stage; (x64)b2 --toolset=msvc-10.0 --build-type=complete architecture=x86 address-model=64 stage。我希望你能取得成功。