boost库编译

01 完全编译windows版本boost68, vs2015/vs2017

https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.7z
–build-type=complete 完全编译,会同时编译出32位/64位/动态/静态库。

bootstrap.bat
bjam --help
bjam install --toolset=msvc-14.0 --prefix="D:/install/boost/boost_1_68_0/msvc140" --build-type=complete --build-dir="../tmp/boost_1_68_0/complete/msvc140"
bjam install --toolset=msvc-14.1 --prefix="D:/install/boost/boost_1_68_0/msvc141" --build-type=complete --build-dir="../tmp/boost_1_68_0/complete/msvc141"

02 boost库生成文件命名和编译

生成文件命名规则:boost中有许多库,有的库需要编译、而有的库不需要编译,只需包含头文件就可以使用。编译生成的文件名字普遍较长,同一个库根据编译链接选项不同,又可以生成多个不同名字的文件。生成的文件名字是很长,可是这样带的信息才多,也就容易识别出用途。其实生成文件的名字遵循一定的规则,有着固定的格式。识别这种格式,能帮助我们更高效地使用boost库。生成文件名字格式如:

BOOST_LIB_PREFIX + BOOST_LIB_NAME + “-” + BOOST_LIB_TOOLSET + “-” + BOOST_LIB_THREAD_OPT + “-” + BOOST_LIB_RT_OPT + “-” + BOOST_LIB_VERSION

这些定义为:
BOOST_LIB_PREFIX: 静态库为 “lib” (否则无,是用动态链接库)
BOOST_LIB_NAME: 库的基本名称 ( 比方说 boost_regex).
BOOST_LIB_TOOLSET: 编译工具集名称 ( 比如:vc6, vc7, bcb5 )
BOOST_LIB_THREAD_OPT: 多线程为 “-mt” ,否则为空
BOOST_LIB_RT_OPT: 指示使用的运行库的后缀,
组合下面的一个或者更多字符:
s 静态运行库,指的是静态链接到运行时库(不出现表示动态).
g 调试/诊断 runtime (release if not present).
d 调试版本 (不出现表示 release 版 ).
p STLPort 版本.
注:对 vc 来说,gd 总是一起出现
BOOST_LIB_VERSION: Boost 版本, Boost 版本 x.y 表示为 x_y形式.

### 解决Boost编译时遇到的问题 #### 1. 配置环境变量 确保已正确设置系统的环境变量,特别是 `PATH` 变量应包含 Visual Studio 的命令行工具路径以及 Boost 安装目录。这有助于避免因找不到必要的编译工具而导致的错误[^1]。 #### 2. 使用适当版本的Visual Studio 不同版本的 Boost 可能与特定版本的 Visual Studio 更兼容。例如,在 Windows 上使用较旧版本如 VS2015 来编译 Boost 1.63 或更高版本时,需确认所使用的 Visual Studio 版本能够支持目标 Boost 版本的要求[^3]。 #### 3. 自定义编译脚本调整 当通过批处理文件(`.bat` 文件)来启动编译过程时,务必检查这些脚本内的参数设定是否匹配当前开发环境的需求。对于某些特定平台或架构的选择(如 32 位 vs 64 位),应当仔细核对并作出相应修改以适应本地条件。 #### 4. 下载源码自行编译而非依赖预构建二进制包 尽管存在许多预先编译好的 Boost 可供下载,但由于不同的编译选项和配置可能导致不一致的行为,因此建议尽可能从官方渠道获取最新版源代码,并按照文档指导完成自定义化编译流程。这样做不仅可以获得更好的性能优化效果,还能有效规避由于第三方提供者采用的不同编译器或其他因素引起的潜在冲突问题[^4]。 #### 5. 查阅日志文件排查具体原因 如果仍然无法成功编译,则可以尝试阅读由 bjam 工具生成的日志文件 (`bootstrap.log`) 中的信息,从中寻找有关失败的具体线索。通常情况下,这类日志会记录下详细的执行步骤及其结果,从而帮助定位实际存在的技术难题所在之处。 ```bash # 进入到解压后的Boost根目录 cd path\to\boost_root_directory # 初始化bjam构建系统(适用于Windows) .\bootstrap.bat # 开始编译指定地址模型下的静态链接 b2 address-model=64 link=static threading=multi variant=release --build-type=complete stage ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值