VS2012+Windows下使用Boost的thread库编译报错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2012+Windows下使用Boost的thread库编译报错相关的知识,希望对你有一定的参考价值。

报错如下:
1>libboost_system-vc110-1_54.lib(error_code.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.obj 中)
1>libboost_system-vc110-1_54.lib(error_code.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MD_DynamicRelease”不匹配值“MDd_DynamicDebug”(main.obj 中)
我已经尝试把四种运行时的库方式:
多线程(/MT)
多线程调试(/MTd)
多线程DLL(/MD)
多线程调试DLL(/MDd)
四种方法全试了,没有用,请问各位大神们有什么好的方法吗?
难道Boost的filesystem只能在Linux下面用,Windows下面不能用吗

参考技术A 同问,我也遇到了,有解决办法吗?

boost库编译成动态链接库就可以了。boost库有3种编译状态,看哪种和调用程序匹配。

Boost安装

windows下boost安装过程

boost版本1.65.0

win版本10

vs版本vs2013+vs2017

其他环境:windows kits

安装boost解压到D盘

直接运行bootstrap.bat可直接生成bjam文件

若无法生成查看log,如果内容是缺少.h文件可用cmd输入,此过程仅适用于系统具有多个vs版本的环境

XXX/bootstrap.bat vsXX   版本为vs版本号,若为其他版本可以输入-vs00此时会失败,但是log文件会显示所有支持的指定版本,然后重新输入可生成bjam.exe

 

运行bjam.exe完成编译

若系统具有多个vs版本需要指定版本,否则默认最高版本

cmd中输入bjam.exe --toolset=msvc-12.0

12为vs2013版本,注意双-和空格

以上是关于VS2012+Windows下使用Boost的thread库编译报错的主要内容,如果未能解决你的问题,请参考以下文章

vs2012 boost配置

windows下vs2015编译BOOST

怎样在VS2013中安装配置boost

为啥我无法在 win64 上使用 boost 1.54 编译 VS2012 C++ 代码?

Windows下Boost库的安装与使用

windows下boost怎样安装与使用说明