使用boost库时需添加.lib文件
1. 下载boost
2. 运行bootstrap.bat,生成b2.exe;双击根目录下面的bootstrap.bat文件,生成b2.exe,bjam.exe
如果编译64位需要vs的cmd窗口,如VS2013 x64 Native Tools Command Prompt进入到boost根目录下面运行bootstrap,编译b2.exe,biam.exe.
3. 运行b2.exe
2.用b2.exe生成64位的lib
b2 stage --toolset=msvc-12.0 architecture=x86 address-model=64 --stagedir=".\lib\vc12_x64" link=static runtime-link=static threading=multi debug release
2.用b2.exe生成64位的lib
b2 stage --toolset=msvc-12.0 architecture=x86 address-model=64 --stagedir=".\lib\vc12_x64" link=static runtime-link=static threading=multi debug release
3.用b2.exe生成32位的lib 我编译的是32位的,编译时间有点小长
b2 stage --toolset=msvc-12.0 architecture=x86 --stagedir=".\lib\vc12_x86" link=static runtime-link=static threading=multi debug release
2.用b2.exe生成64位的lib
b2 stage --toolset=msvc-12.0 architecture=x86 address-model=64 --stagedir=".\lib\vc12_x64" link=static runtime-link=static threading=multi debug release
4.解释编译命令
link=static/shared,静态或者动态编译boost
runtime-link=static/shared,boost是否需要依赖vc运行库,如果你要自带vc运行库可用shared
threading=multi/single,是否支持多线程
红色为默认选项,如果不指定编译命令的情况下
在一个vs版本的的情况下可以直接b2 --toolset=msvc,多个的话需要指定vs版本号b2 --toolset=msvc-12.0
2.用b2.exe生成64位的lib
b2 stage --toolset=msvc-12.0 architecture=x86 address-model=64 --stagedir=".\lib\vc12_x64" link=static runtime-link=static threading=multi debug release
5.生成的文件名
libboost_log-vc120-mt-sgd-1_59.lib,其中mt表示多线程,sgd中的s表示runtime 是static,gd表示debug版本。
6.将生成的lib和头文件加到vc目录下面
D:\boost_1_59_0加入到include下面中
将需要lib,比如boost_1_59_0\lib\vc12_x64\lib加到lib目录下面
7.可删除临时文件目录bin.v2
4. 添加boost到附加包含目录 C/C++/常规/附加包含目录
5. 添加\stage\lib到附加库目录 连接器/常规/附加库目录
重新编译
编译之后竟然还不行,于是到\stage\lib下查看,发现目录下存在的是libboost_serialization-vc140-mt-gd-1_62.lib. 原来是版本的问题。
我电脑上同时安装了VS2015和VS2008.因此在编译生成库文件的时候要指定编译器版本。
执行命令 bjam stage --toolset=msvc-9.0,
编译完成后,libboost_serialization-vc90mt-gd-1_62.lib.成功生成
2.用b2.exe生成64位的lib
b2 stage --toolset=msvc-12.0 architecture=x86 address-model=64 --stagedir=".\lib\vc12_x64" link=static runtime-link=static threading=multi debug release