C++ windows boost 编译

来源:互联网 发布:商品抢购软件 编辑:程序博客网 时间:2024/06/05 20:55
1.下载boost


从boost官网( http://www.boost.org )上下载,指定版本可以从  http://www.boost.org/users/history 下载


2.编译安装boost

boost_1_62_0目录下会有一个bootstrap.bat批处理,需要在visual stuadio 的命令提示窗口执行,如下图:




会在 boost_1_62_0\tools\build\v2 文件夹下生成两个exe:b2.exe和bjam.exe,并且自动拷贝这两个文件到boost_1_62_0目录下。

从visual stuadio 的命令提示窗口进入到boost_1_62_0路径下,输入如下命令:


b2 toolset=msvc-10.0 --layout=versioned architecture=x86 address-model=64 link=static variant=debug,release threading=multi runtime-link=static --without-python --without-mpi --without-wave --without-graph --without-math --without-serialization stage

使用不同的命令对你使用boost也会产生很大的影响,因为CPU速度和硬盘现在都已经不是大问题了,所以本例中选择了除了不必要库的完全编译,当然了,你时间够,硬盘够,可以完全编译

b2 --toolset=msvc-10.0 --build-type=complete
解释完以上的命令后,再说完全编译的后果。


1.toolset:表示编译器工具,我安装的是VS2010,所以是msvc-10.0; 
                    具体的版本对应关系,可以查看boost_1_62_0\tools\build\src\tools\msvc.jam中的# Version aliases节
                    # Version aliases.
                    .version-alias-6 = 6.0 ;
                    .version-alias-6.5 = 6.0 ;
                    .version-alias-7 = 7.0 ;
                    .version-alias-8 = 8.0 ;
                    .version-alias-9 = 9.0 ;
                    .version-alias-10 = 10.0 ;
                    .version-alias-11 = 11.0 ;
                    .version-alias-12 = 12.0 ;
                    .version-alias-14 = 14.0 ;
2.architecture:表示架构,也就是你的CPU架构,x86,x64,因为我安装的是win7 32位,所以使用了x86的架构
3.instruction-set:表示指令集,依然是8086指令集
4.address-model:表示地址长度为32位
5.link:表示生成动态/静态链接库,动态链接库是shared,静态链接库是static,一般都会编译成静态库,因为给出程序的时候打包boost的库会非常庞大
6.variant:表示生成的Debug或者release版本,一般情况下会两种版本都会编译出来的
7.threading:表示单/多线程编译,一般我们的程序都会用到多线程,所以选择了multi
8.runtime-link:表示动态/静态链接C/C++运行时库(C/C++ Runtime),我们选择了动态链接
9.without/with:表示不需要编译/需要编译哪些库,一些自己不用的库可以无需编译
10.stage/install:stage表示只生成库文件(DLL和Lib),install还会生成包含头文件的include目录,推荐使用stage,因为boost_1_62_0\boost中就是boost库完整的头文件,所以无需再拷贝一份出来。编译出来的库会放在stage文件夹中

这样一份完整的boost库就生成了,剩下就是直接使用到项目中了。