boost link 错误 LNK2038:“boost_log_abi”“v2s_mt_nt6”与“v2_mt_nt6”不匹配
boost link error LNK2038: “boost_log_abi” “v2s_mt_nt6” doesn't match “v2_mt_nt6"
这个 link 错误是什么意思?以及如何修复它
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)
您的 Boost.Log 库似乎是使用与主程序不同的标志构建的。
从config.hpp
我们可以看出这些ABI名称的含义:
v2s_mt_nt6
在 Windows Vista 或更高版本(版本 6)
[=45= 上静态 linked,支持多线程]
v2_mt_nt6
动态 linked,支持多线程,在 Windows Vista 或更高版本(版本 6 )
BOOST_LOG_DLL
宏决定使用两个路径中的哪一个。如果定义了 BOOST_LOG_DYN_LINK
或 BOOST_ALL_DYN_LINK
中的任何一个,则定义它。
如果你静态地link反对Boost.Log(通过.lib
文件或类似文件),你不能定义这两个宏。1
这意味着您可以删除额外的预处理器定义(因为您正在尝试 link 到静态库)或使用 Boost 的动态库版本(例如 here如何在 Windows).
上进行设置
1 注意一些库ignore those flags outright。如果这些宏配置错误,Boost.Log 似乎是为数不多的实际会导致问题的人之一
这个 link 错误是什么意思?以及如何修复它
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)
您的 Boost.Log 库似乎是使用与主程序不同的标志构建的。
从config.hpp
我们可以看出这些ABI名称的含义:
[=45= 上静态 linked,支持多线程]v2s_mt_nt6
在 Windows Vista 或更高版本(版本 6)v2_mt_nt6
动态 linked,支持多线程,在 Windows Vista 或更高版本(版本 6 )
BOOST_LOG_DLL
宏决定使用两个路径中的哪一个。如果定义了 BOOST_LOG_DYN_LINK
或 BOOST_ALL_DYN_LINK
中的任何一个,则定义它。
如果你静态地link反对Boost.Log(通过.lib
文件或类似文件),你不能定义这两个宏。1
这意味着您可以删除额外的预处理器定义(因为您正在尝试 link 到静态库)或使用 Boost 的动态库版本(例如 here如何在 Windows).
上进行设置1 注意一些库ignore those flags outright。如果这些宏配置错误,Boost.Log 似乎是为数不多的实际会导致问题的人之一