vs2013下boost库的安装编译使用

1.boostk库编译细则
使用vs2013开发人员工具集
1.1 若出现:‘cl’不是内部或外部命令,也不是可运行的程序 或批处理文件
检查是否有类似如下格式的环境变量VSXXCOMNTOOLSVS90COMNTOOLS=E\安装软件\XXXX\Common7\Tools\ 其中XX与VS版本有关:
a) VS2012对应 VS110COMNTOOLS
b) VS2013对应VS120COMNTOOLS
c) VS2015对应VS140COMNTOOLS
如果没有则执行步骤2;否则执行步骤3

2. 在我的电脑>属性>高级>环境变量>系统变量 中新建一个环静变量
变量名: VSXXCOMNTOOLS
变量值: VS安装目录\Common7\Tools\
重复执行步骤1

3. 在控制台中键入 
>call "%VS120COMNTOOLS%"vsvars32.bat <==设置cl运行时的一些环境变量
>cl 确保没有提示出错;否则重复步骤1

1.2 若cl成功显示,没有问题,则切换到boost库文件目录
vs2013对应vc12
vs2014对应vc13
vs2015对应vc14
vs2017对应vc14.1

执行bootstrap.bat vc12

过输入bootstrap.bat命令,我们可以在boost目录里生成b2.exe 、bjam.exe 、project-config.jam 、bootstrap.log四个文件。
其中,b2.exe 、bjam.exe 这两个exe作用是一样的,bjam.exe 是老版本,b2是bjam的升级版本。

 

1.3 编译选项---注意使用的版本

懒人无视版本
bjam stage --toolset=msvc-12.0 --without-python --stagedir="D:\Work\Source\boost170\ide\vc12\multi\x64" --without-python threading=multi --build-type=complete address-model=64 debug release
bjam stage --toolset=msvc-12.0 --without-python --stagedir="D:\Work\Source\boost170\ide\vc12\multi\x32" --without-python threading=multi --build-type=complete address-model=32 debug release
一般常用版本
bjam stage --toolset=msvc-12.0 --stagedir="D:\Work\Source\boost170\ide\vc12\x64" --without-python link=static runtime-link=shared runtime-link=static threading=multi address-model=64 debug release
bjam stage --toolset=msvc-12.0 --stagedir="D:\Work\Source\boost170\ide\vc12\x32" --without-python link=static runtime-link=shared runtime-link=static threading=multi address-model=32 debug release

以上使用的是不包含Python库,分别编译32,64位文件备用,debug release通用
(1)stage/install:
stage表示只生成库(dll和lib),install还会生成包含头文件的include目录。本人推荐使用stage,
因为install生成的这个include目录实际就是boost安装包解压缩后的boost目录(D:\boost\boost_1_60_0,
只比include目录多几个非hpp文件,都很小),所以可以直接使用,而且不同的IDE都可以使用同一套头文件,这样既节省编译时间,也节省硬盘空间。

(2)toolset:指定编译器,可选的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008)等,VS2013对应msvc-12.0

(3)without/with:选择不编译/编译哪些库。因为python、mpi等库我都用不着,所以排除之。
还有wave、graph、math、regex、test、program_options、serialization、signals这几个库编出的静态lib都非常大,
所以不需要的也可以without掉。这可以根据各人需要进行选择,默认是全部编译。但是需要注意,如果选择编译python的话,
是需要python语言支持的,应该到python官方主页http://www.python.org/下载安装


(4)stagedir/prefix:
stage时使用stagedir,install时使用prefix,表示编译生成文件的路径。
推荐给不同的IDE指定不同的目录,如VS2008对应的是E:\SDK\boost\bin\vc9,
VC6对应的是E:\SDK\boost\bin\vc6,否则都生成到一个目录下面,难以管理。如果使用了install参数,
那么还将生成头文件目录,vc9对应的就是E:\SDK\boost\bin\vc9\include\boost-1_46\boost,vc6类似(光这路径都这样累赘,还是使用stage好)

(5)build-dir:编译生成的中间文件的路径。这个本人这里没用到,默认就在根目录(E:\SDK\boost)下,
目录名为bin.v2,等编译完成后可将这个目录全部删除(没用了),所以不需要去设置。

(6)link:生成动态链接库/静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。
一般boost库可能都是以static方式编译,因为最终发布程序带着boost的dll感觉会比较累赘。

(7)runtime-link:动态/静态链接C/C++运行时库。同样有shared和static两种方式,
这样runtime-link和link一共可以产生4种组合方式,各人可以根据自己的需要选择编译。

(8)threading:单/多线程编译。一般都写多线程程序,当然要指定multi方式了;如果需要编写单线程程序,那么还需要编译单线程库,可以使用single方式。

(9)debug/release:编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译。

 

posted @ 2019-09-09 17:55  reshuffle  阅读(306)  评论(0编辑  收藏  举报