windows下编译Boost
-
当前boost最新版本为1.55,下载地址:http://sourceforge.net/projects/boost/files/boost/1.55.0/
或者从官网(www.boost.org)下载最新版的BOOST源码,如图所示.
经过测试,2012和2013步骤相同,这里以2012为例。 -
执行bootstrap.bat,如图绿框所示:
-
查看帮助可以输入:.\b2 --help
比如要开启多线程编译:b2 install threading=multi
设置生成的是debug或者release
备注:如果是使用VS2013,请指定输出库类型,否则会缺一个lib文件:
"无法打开文件 libboost_thread_vc120_mt_sgd-1_55.lib"。
在2013时,我是使用下面的语句进行编译:
// 如果要获取动态库:
bjam install stage --toolset=msvc-12.0 --stagedir="C:\Boost\boost_vc_120" link=shared runtime-link=shared threading=multi debug release
// 如果是要获取静态库:
bjam install stage --toolset=msvc-12.0 --stagedir="C:\Boost\boost_vc_120" link=static runtime-link=static threading=multi debug release
其中,注意修改--toolset=msvc-12.0,将12.0修改成对应的vs版本号,12.0是VS2013的版本号。
目标地址也要修改成你所需的。
注意,不要漏了install,它会帮你把头文件集合到一个文件夹中。
编译过程有一个复制过程,编译需要的时间比较长,本次编译过程中,会在C盘根目录下生成一个boost文件夹,然后包含include和lib文件夹,这就是我们将要使用的头文件和库文件。
-
下图三个文件分别是: 1) 将要使用的boost头文件和库文件。 2) 解压出的boost文件夹,就是使用这个文件夹来进行 1 -- 3步骤的。 3)BoostTest 测试工程。
需要简单的配置两个地方:
这里使用绝对路径,也可以配置环境来使用。
也可以参考阿清给我的文档:
添加boost库
Boost是一个和STL类似的标准库,但它扩充了STL使得泛型的优点发挥到最佳,因此现在Boost比STL更为实用。
Step1:下载Boost库,这里我选择下载boost_1_55_0.zipStep2:
解压boost文件到本地目录(如G:\boost_1_55_0),发现解压后的文件中有一个bootstrap.bat文件。然后以管理员身份打开cmd窗口,具体命令bootstrap.bat或者使用对应的VS工具,比如VS2012 x64 Native Tools Command Prompt工具打开cmd窗口,具体命令bootstrap.bat
,上述命令执行完毕后可以发现G:\boost_1_55_0下新生成了一个bjam.exe文件Step3:
对于额外的一些依赖,比如boost.nowide 官网:http://cppcms.com/files/nowide/html/index.html
下载对应的Standard Version: boost_nowide.zip 包后,再合并到标准的boost文件中Step4:
如果需要编译zlib,则需要先去http://www.zlib.net/下载对应的源码包,解压到某一路径
比如boost/otherLib/然后
命令行下设置环境变量 set ZLIB_SOURCE="D:\dyq\P\boost_1_59_0\otherLib\zlib-1.2.3"Step5:
运行bjam.exeStep6:
编译32位静态库:
b2 link=static runtime-link=static threading=multi debug release
编译64位静态mt库:
b2 stage --toolset=msvc-12.0 architecture=x86 address-model=64 --stagedir=".\stage\vc12_x64" link=static runtime-link=static threading=multi debug releaseb2 stage --toolset=msvc-12.0 architecture=x86 address-model=64 --stagedir=".\stage\vc12_x64" link=static runtime-link=shared threading=multi debug release
编译64位静态md库:
b2 stage --toolset=msvc-12.0 architecture=x86 address-model=64 --stagedir=".\stage\vc12_x64" link=static runtime-link=shared threading=multi debug releaseStep7:
添加boostest工程的包含目录和库目录
包含目录添加 G:\boost_1_55_0
库目录添加 G:\boost_1_55_0\stage\lib
注意:
程序的运行时(多线程/多线程DLL)要与库保持一致,否则链接会报找不到文件的错误