Boost库的编译

Boost的编译

 

. 编译环境


Win7 sp1 64位旗舰版 + VS2008 sp1 + boost 1.63

 

. 下载boost


http://www.boost.org/users/history/version_1_63_0.html

https://sourceforge.net/projects/boost/files/boost/1.63.0/boost_1_63_0.7z

 

. 生成boost的编译工具b2.exebjam.exe


3.1 解压boost_1_63_0.7zC:\boost_1_63_0  (路径可任意选择,最好不要包含中文和空格);

3.2 使用VC2008的命令行工具并cdC:\boost_1_63_0

3.3 输入bootstrap.bat

即可生成b2.exebjam.exe

 

 

. 编译boost


4.1. 编译命令


我这里是全编译:

// 编译Debug

b2.exe install --toolset=msvc-9.0 --prefix="vc9" link=static runtime-link=shared threading=multi debug

// 编译Release

b2.exe install--toolset=msvc-9.0 --prefix="vc9" link=static runtime-link=shared threading=multi release

// Debug版和Release版都编译

b2.exe install--toolset=msvc-9.0 --prefix="vc9" link=static runtime-link=shared threading=multi debug release

 

4.2. b2.exe/bjam.exe的命令参数解析


1). stage/install


stage :表示只生成库(dll/lib);

install : 除了生成库((dll/lib)),还会拷贝boost的头文件到指定的include目录;(我试过了,要拷贝一万多个头文件,很慢)


2). toolset


指定编译器, 可选的如borland, gcc, msvc(VC6), msvc-12.0(VS2013), msvc-14.0(VS2015).例如上面命令的--toolset=msvc-9.0


3). without/with


选择不编译/编译哪些库.因为我这里是全编译,所以不写.


4). stagedir/prefix


stage时使用stagedir, install时使用prefix,表示编译生成文件的路径.我这里是当前目录下的v9目录,也就是C:\boost_1_63_0\vc9


5). build-dir


编译生成的中间文件的路径. 这里没用到,默认就在根目录(X:\boost_X_XX_X\boost),目录名为bin.v2.


6). link


生成动态链接库/静态链接库.生成动态链接库需使用shared方式,生成静态链接库需使用static方式.我这里是link=static


7). runtime-link


动态/静态链接C/C++运行时库.同样有sharedstatic两种方式,这样runtime-linklink一共可以产生4种组合方式.我这里是runtime-link=shared

 

8). threading


/多线程编译.一般都写多线程程序,当然要指定multi方式了;如果需要编写单线程程序,那么还需要编译单线程库,可以使用single方式.我这里是threading=multi


9). debug/release


编译debug/release版本.我这里是debug release

 

. 配置boostVC上的路径


你懂的

 

参考:

http://www.cppblog.com/FongLuo/archive/2016/10/20/214347.html
http://www.jianshu.com/p/de1fda741beb

http://blog.sina.com.cn/s/blog_62431a790101b4ci.html

http://www.cppblog.com/HappySky2046/archive/2013/12/14/204794.html

### 解决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、付费专栏及课程。

余额充值