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下面不能用吗
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库编译报错的主要内容,如果未能解决你的问题,请参考以下文章