【发布时间】:2018-05-09 15:41:02
【问题描述】:
这个链接错误是什么意思?以及如何解决它
error LNK2038: “boost_log_abi” “v2s_mt_nt6” doesn't match “v2_mt_nt6"
我试过了
ADD_DEFINITIONS(-DBOOST_ALL_DYN_LINK)
ADD_DEFINITIONS(-DBOOST_LOG_DYN_LINK)
ADD_DEFINITIONS(-DBOOST_USE_WINAPI_VERSION=0x601)
【问题讨论】:
-
我在使用 b2 构建 boost 时没有定义 BOOST_LOG_DOXYGEN_PASS,为什么它是 v2s_mt_nt6 而不是 v2_mt_nt6
-
您能否分享更多有关如何设置构建的上下文(您链接的文件,或实际失败的构建命令)?我怀疑你链接的是静态构建的 Boost 版本,但我需要更多数据来支持它
-
我下载了一个预构建版本的 boost,现在它可以工作了,我在从 boost 源代码构建生成动态库时遇到了一些错误。非常感谢。
-
所以
v2s_mt_nt6中的s表示静态? -
是的。有可能您的 boost 构建实际上最终生成了静态库 - 对于其中的许多,您不会注意到差异,但是 Boost.Log 会引起麻烦。我会将其发布为答案,以便其他人在搜索时可以找到它。
标签: c++ windows boost visual-studio-2015