亲测可解决!!
boost 编译的和 VS版本配套。也就是说 VS2017 编译的只能支持 VS2017 ,所以需要重新编译出配套的 boost 文件。
一、 boost库 编译步骤:
boost库下载地址:http://www.boost.org
将 boost_1_70_0.rar 解压到C盘,
进入"C:\boost_1_70_0\tools\build",执行bootstrap.bat批处理文件,生成b2.exe和bjam.exe两个Build文件。
将"bjam.exe"复制到boost根目录下(“C:\boost_1_70_0\boost_1_70_0”)
然后 打开 VS2017 里面的一个命令窗口。
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2017\Visual Studio Tools\VC\适用于 VS 2017 的 x86_x64 兼容工具命令提示
首选输入 cd C:\boost_1_70_0\ 按下回车
接着输入 (为啥是14.1,因为用的是VS2017 ,这里必须配套,否则编译出来的 不能用)
b2.exe stage --toolset=msvc-14.1 address-model=32 --stagedir=“C:\boost_1_70_0\boost_1_70_0\VC14.1\x32” threading=multi --build-type=complete --build-dir=“C:\boost_1_70_0\boost_1_70_0\build”
以上这个如果程序引用以上静态库,编译的DLL 或者 LIB 运行时库 会崩溃。 下面的命令多了 静态链接的命令
b2.exe stage --toolset=msvc-14.1 address-model=32 --stagedir=“C:\boost_1_70_0\VC14.1\x32” threading=multi --build-type=complete --build-dir=“C:\boost_1_70_0\build” link=static runtime-link=static variant=debug release
按下回车,然后就开始编译了 有点漫长,慢慢等待。
二、VS2017如何调用
在VS2017中配置boost环境
项目属性 > 配置属性,然后看到下面的选择项:
常规 > 平台工具集,选择 Visual Studio 2017 (v140).
下面的两个操作,需要你将上面boost编译的时候告诉你的目录替换到下面说的有关目录信息里面去。
看到 “C\C++” 常规 > 附加包含目录,增加"C:\boost_1_70_0\boost_1_70_0"
最后,
看到“链接器”常规 > 附加库目录,增加"C:\boost_1_70_0\boost_1_70_0\stage\lib"
————————————————
原文链接:https原文链接:https://blog.csdn.net/i735740559/article/details/103237594@TOC