win10+VS2017编译配置boost_1_78_0

1.编译boost库

1.1下载boost

下载官网地址:boost_1_78_0

注意,有时候会下载不全,下载之后检查一下
如果下载不完全,编译不能通过

1.2 解压

解压,一定要解压到一个指定文件夹,否则运行bootstrap.bat的时候会报错
即,解压后的路径最后是:

D:\boost\boost_1_78_0

而不是

d:\boost_1_78_0

如果直接是d:\boost_1_78_0,运行boostrap.bat报错如下:

D:\boost_1_78_0>bootstrap.bat msvc
Building Boost.Build engine
'.\build.bat' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

Failed to build Boost.Build engine.

1.3 配置VS2017的cl.exe

cl.exe所在路径:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64

配置环境cl.exe的路径到path环境变量中
在这里插入图片描述
如果cl.exe配置成功,cmd模式下输入cl如下所示

C:\Users\xrw020>cl
用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
版权所有(C) Microsoft Corporation。保留所有权利。

用法: cl [ 选项... ] 文件名... [ /link 链接选项... ]

否则报错:
cl不是内部命令等。

1.4 编译boost

1.4.1基本步骤

以管理员身份运行VS2017开发人员命令提示,英文名称x64 Native Tools Command Prompt for VS 2017
然后切换到boost所在目录,例如我的目录是d:\boost\boost_1_78_0
输入命令:

d:

进入d盘,然后进入文件夹,输入命令:

cd boost\boost_1_78_0

进入boost_1_78_0目录之后,运行该目录下的bootstrap.bat,运行命令如下:

bootstrap.bat msvc

运行结果,生成b2.exe,project-config.jam文件
在这里插入图片描述

运行b2.exe编译boost库,运行指令如下:

b2.exe stage --toolset=msvc-14.1 address-model=64 --stagedir="D:\boost\bin1.78.0\VC14.1"threading=multi --build-type=complete –-build-dir="D:\boost\boost_1_78_0\build"

也可以直接运行b2.exe,下面配置boost库采用的是直接运行b2.exe的方式。

1.4.2 b2命令参数

b2.exe的命令参数说明
在这里插入图片描述

–toolset
指定编译器版本,VS为MSVC,
visual studio版本号与MSVC版本号对应关系

MSC    1.0   _MSC_VER == 100
MSC    2.0   _MSC_VER == 200
MSC    3.0   _MSC_VER == 300
MSC    4.0   _MSC_VER == 400
MSC    5.0   _MSC_VER == 500
MSC    6.0   _MSC_VER == 600
MSC    7.0   _MSC_VER == 700
MSVC++ 1.0   _MSC_VER == 800
MSVC++ 2.0   _MSC_VER == 900
MSVC++ 4.0   _MSC_VER == 1000 (Developer Studio 4.0)
MSVC++ 4.2   _MSC_VER == 1020 (Developer Studio 4.2)
MSVC++ 5.0   _MSC_VER == 1100 (Visual Studio 97 version 5.0)
MSVC++ 6.0   _MSC_VER == 1200 (Visual Studio 6.0 version 6.0)
MSVC++ 7.0   _MSC_VER == 1300 (Visual Studio .NET 2002 version 7.0)
MSVC++ 7.1   _MSC_VER == 1310 (Visual Studio .NET 2003 version 7.1)
MSVC++ 8.0   _MSC_VER == 1400 (Visual Studio 2005 version 8.0)
MSVC++ 9.0   _MSC_VER == 1500 (Visual Studio 2008 version 9.0)
MSVC++ 10.0  _MSC_VER == 1600 (Visual Studio 2010 version 10.0)
MSVC++ 11.0  _MSC_VER == 1700 (Visual Studio 2012 version 11.0)
MSVC++ 12.0  _MSC_VER == 1800 (Visual Studio 2013 version 12.0)
MSVC++ 14.0  _MSC_VER == 1900 (Visual Studio 2015 version 14.0)
MSVC++ 14.1  _MSC_VER == 1910 (Visual Studio 2017 version 15.0)
MSVC++ 14.11 _MSC_VER == 1911 (Visual Studio 2017 version 15.3)
MSVC++ 14.12 _MSC_VER == 1912 (Visual Studio 2017 version 15.5)
MSVC++ 14.13 _MSC_VER == 1913 (Visual Studio 2017 version 15.6)
MSVC++ 14.14 _MSC_VER == 1914 (Visual Studio 2017 version 15.7)
MSVC++ 14.15 _MSC_VER == 1915 (Visual Studio 2017 version 15.8)
MSVC++ 14.16 _MSC_VER == 1916 (Visual Studio 2017 version 15.9)
MSVC++ 14.2  _MSC_VER == 1920 (Visual Studio 2019 Version 16.0)
MSVC++ 14.21 _MSC_VER == 1921 (Visual Studio 2019 Version 16.1)
MSVC++ 14.22 _MSC_VER == 1922 (Visual Studio 2019 Version 16.2)

运行Visual Studio,点击工具栏“帮助”→“关于MicroSoft Visual Studio”,如下图打钩部分即是:
在这里插入图片描述

注意,–toolset=msvc-14.1, 这里的14.1与下图的保持一致

在这里插入图片描述

1.4.4 错误处理

运行b2.exe时报错

D:\boost\boost_1_78_0>b2.exe stage --toolset=msvc-14.16 address-model=64 --stagedir="D:\boost\bin1.78.0\VC14.16"threading=multi --build-type=complete --build-dir="D:\boost\boost_1_78_0\build"
[errno 2] option.jam (No such file or directory)
D:/boost/boost_1_78_0/tools/build/src/kernel/bootstrap.jam:124: in boost-build
ERROR: rule "option.process" unknown in root module.
D:/boost/boost_1_78_0/boost-build.jam:17: in module scope

报错信息:
找不到option.jam文件

解决方案:
先前在官网下载的boost_1_78_0下载的是boost_1_78_0.7z文件,现在下载一个boost_1_78_0.zip解压并覆盖源代码,问题解决。

2.VS2017配置boost库

打开VS2017,新建-项目-Visual c+±Windows 控制台应用程序

项目属性-C/C+±常规-附加包含目录,添加Boost所在的根目录,即使:

D:\boost\boost_1_78_0

项目属性-链接器-常规-附加库目录,添加stage中的lib文件,即:

D:\boost\boost_1_78_0\stage\lib

测试代码:

#include <iostream>
#include <boost/lexical_cast.hpp>
#include <string>
using std::cout;
using std::string;
using std::endl;

int main() {
	using boost::lexical_cast;
	int a = lexical_cast<int>("123");
	double b = lexical_cast<double>("123.09876");
	string s0 = lexical_cast<string>(a);
	cout << a << endl;
	cout << b << endl;
	cout << s0 << endl;
}

3.参考文献

boot getting start guide
如何查看Visual Studio版本、与MSVC版本号的对应关系
VS2017编译配置Boost库
Visual Studio编译Boost
VS2017下Boost编译
VS2017下boost配置


  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

haimianjie2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值