欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[boost]VS2015编译构建boost 1.60 博客分类: C/C++ boost 

程序员文章站 2024-03-06 13:20:13
...

 

编译脚本

在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

 

相关标签: boost