Windows下编译boost库

准备工作

  • 下载boost库。官方下载地址:为了避免官方版本下载较慢,可以在这里下载版本为1.78
  • 安装Virtual Studio,测试过2013以上的版本都可以编译最新版本的boost库,2013之前的版本没有做过测试。

启动编译

启动vistual studio的命令环境【参考如下】

在这里插入图片描述
在这里插入图片描述

在命令提示符下切换boost源码路径为当前路径

在命令提示符下,执行boost源码中的bootstrap.bat

在这里插入图片描述

执行效果如下:
在这里插入图片描述

执行后,在boost源码目录下生成b2.exe,接下来使用b2.exe执行编译工作

b2具体编译参数如下表

参数名可选参数
variant决定编译什么版本,debug版本生成的lib库命名中含有d标识,没有标识则为release版本
link链接方式,决定生成动态库还是静态库
threading决定使用单线程模式还是多线程模式
address-model决定编译32位还是64位版本
toolset决定使用的vs版本,前提是系统中已经安装对应编译器版本的工具集
include附加头文件的包含路径
define附加宏定义
runtime-link标准库的链接方式,static:静态链接运行时库,项目指定MT编译使用。shared:动态链接运行时库,项目指定MD编译时使用
–with-指定只编译某个库,如–with-regex只编译ragex库
–show-libraries显示所有需要编译库的名称,配合–with进行编译过滤

如:
b2 runtime-link=static link=static threading=multi(生成静态库,该静态库静态链接C运行库)
生成的文件:
libboost_thread-vc142-mt-sgd-x64-1_74.lib
libboost_thread-vc142-mt-s-x64-1_74.lib
lib库命名中,s代表静态链接运行时库(MT),gd代表debug版本。

b2 runtime-link=shared link=static threading=multi(生成静态库,该静态库动态链接C运行库)
生成的文件:
libboost_thread-vc142-mt-gd-x64-1_74.lib
libboost_thread-vc142-mt-x64-1_74.lib
可见,动态链接运行时库,lib库命名中不包含s字符

b2 runtime-link=shared link=shared threading=multi(生成动态库,该动态库动态链接C运行库)
生成的文件:
boost_thread-vc142-mt-gd-x64-1_74.lib
boost_thread-vc142-mt-x64-1_74.lib
boost_thread-vc142-mt-gd-x64-1_74.dll
boost_thread-vc142-mt-x64-1_74.dll

lib库命名规则的含义

  • 静态库lib以lib开头,而动态编译的lib库不以lib开头,需要搭配dll使用。如libboost_threadxxxx.lib为静态编译,boost_threadxxx.lib为动态编译
  • vc142表示编译器名称及版本,vc142对应virtual studio 2019
  • 命名中包含mt代表threading=multi,没有mt代表threading=single
  • 由gd代表debug版本,没有则代表release版本
  • x64表示64位版本,同理x32则代表32位版本
  • s代表C运行时的链接方式为静态链接,等同与vs的MT参数,不带s则表示为动态链接版本,等同vs的MD
  • 1_74代表Boost 1.74版本

toolset msvc对应关系

编译器版本msvctoolset
vs2010v100msvc-10.0
vs2013v120msvc-12.0
vs2015v140msvc-14.0
vs2017v141msvc-14.1
vs2019v142msvc-14.2
vs2022v143msvc-14.3
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值