[boost]VS2015编译构建boost 1.60

 

编译脚本

在boost_1_60_0.zip解压后的根目录下,新建一个build_boost_1_60_vs2015.bat文件,打来命令行并定位到当前目录下执行该bat文件(不要双击运行!),等待运行完毕即可。

bat文件内容如下:
参考自:https://studiofreya.com/2015/12/19/how-to-build-boost-1-60-with-visual-studio-2015/

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86
 
cd boost_1_60_0
call bootstrap.bat
 
rem Most libraries can be static libs
b2 -j8 toolset=msvc-14.0 address-model=64 architecture=x86 link=static threading=multi runtime-link=shared --build-type=minimal stage --stagedir=stage/x64
b2 -j8 toolset=msvc-14.0 address-model=32 architecture=x86 link=static threading=multi runtime-link=shared --build-type=minimal stage --stagedir=stage/win32
 
pause

 

编译完成后的lib位置

以boost::atomic的release版本为例,其编译生成的目录位置是

x64:boost_1_60_0\bin.v2\libs\atomic\build\msvc-14.0\release\address-model-64\link-static\threading-multi\libboost_atomic-vc140-mt-1_60.lib

win32:boost_1_60_0\bin.v2\libs\atomic\build\msvc-14.0\release\link-static\threading-multi\libboost_atomic-vc140-mt-1_60.lib

 

默认编译引发的错误

如果用到了boost::system,那么在x64模式下会出现lnk2001的错误:

ErrorLNK2001unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAAEBVerror_category@12@XZ)

 

解决办法:按照上面的配置编译生成x64的库。

 

编译参数解释

编译参数到底什么含义,以及可选的其他参数值,见官方文档说明:

http://www.boost.org/doc/libs/1_60_0/doc/html/bbv2/reference.html

 

猜你喜欢

转载自aigo.iteye.com/blog/2291903