提升链接错误 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"
这个链接错误是什么意思?以及如何修复它
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(上静态链接,具有多线程支持 -
v2_mt_nt6
在 Windows Vista 或更高版本(版本 6(上动态链接,具有多线程支持
BOOST_LOG_DLL
宏决定使用两条路径中的哪一条。如果定义了BOOST_LOG_DYN_LINK
或BOOST_ALL_DYN_LINK
中的任何一个,则定义它。
如果静态链接到 Boost.Log(通过.lib
文件或类似文件(,则不得定义这两个宏中的任何一个。1
这意味着您可以删除额外的预处理器定义(因为您尝试链接到静态库(或使用动态库版本的 Boost(例如,请参阅此处了解如何在 Windows 上进行设置(。
1请注意,某些库会完全忽略这些标志。Boost.Log似乎是少数几个如果这些宏配置错误而实际导致问题的人之一
。相关文章:
- 为什么在Visual Studio的OpenCV项目中使用/MT时仍然需要dll?
- MSVCP140.dll尽管设置了 /MT 运行时库
- 致命错误LNK1104:无法打开文件"libboost_log-vc141-mt-gd-1_64.lib"
- 当使用 /ENTRY:main 和 /MT 运行时库编译为 /SUBSYSTEM:WINDOWS 时,应用程序崩溃
- assimp-vc140-mt.dll ASSIMP was not found
- 提升序列化和 MFC:"cannot open file 'libboost_serialization-vc141-mt-s-x32-1_69.lib' "
- 如何使用BOOST_THREAD_WIN32-MT-S(与mingw交叉键)来构建Boost
- 链接错误libboost_filesystem-vc140-mt-1_61.lib,但我有boost_filesyste
- CMake compile -s -mt version of rabbitmq-c
- Boost.Python 和错误LNK1104:无法打开文件'boost_python-vc100-mt-gd-1_55.lib'
- 致命错误LNK1104:无法打开文件'libboost_system-vc110-mt-gd-1_51.lib'
- "Cannot find -lallegro-5.0.4-monolith-mt" 使用快板的开发C++错误
- 在 /MD 和 /MT 运行时库之间进行封送
- MongoDB CPP 驱动程序(Ubuntu Server x64)中缺少 lboost_thread-MT
- 使用/MT或/MD在Visual Studio 10中构建dll
- QuantLib 1.5 编译错误无法打开文件'QuantLib-vc100-x64-mt.lib'
- 运行时错误"boost_log-vc100-mt-1_49.dll"
- 编译cryptopp时MT/MD不匹配,尽管没有库依赖项
- 无法打开文件 libboost_thread_vc-100-mt-gd-1_48.lib
- "/MD /MT"和"dll lib"之间的概念歧义