Windows+vs2012中 boost 编译过程

Posted 一片荷叶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows+vs2012中 boost 编译过程相关的知识,希望对你有一定的参考价值。

前提条件:在 Windows 10中编译 boost,直接使用 Visual Studio 2012 编译器是最简单的,所以请先安装 Visual Studio,本文 中使用的编译器为 Visual Studio 2012。 1、下载并解压 boost Boost 的下载地址为:https://sourceforge.net/projects/boost/files/boost/ 下载的 boost_1_67_0-msvc-14.1-64.exe 版本,双击安装在 D:\\xxx\\boost_1_67_0 目录 可以看到 D:\\xxx\\boost_1_67_0 文件夹,这个便是 boost 的根目录。 2、生成 boost 编译器文件 (为了避免权限不够等问题,最好以管理员权限运行 buildstrap.bat.) C:\\Windows\\SysWOW64\\cmd.exe,管理员权限运行D:\\xxx\\boost_1_67_0\\buildstrap.bat,生成编译器文件 bjam.exe。bjam.exe 的路径为:D:\\xxx\\boost_1_67_0\\bjam.exe。 3、编译 boost 库 切换到 boost 根目录路径,在命令提示窗口输入 cd D:\\xxx\\boost_1_67_0 再输入 编译指令bjam  --without-python --toolset=msvc-11.0 --build-type=complete stage 等待编译完成。 最后编译出的 lib、dll 文件的路径为:D:\\xxx\\boost_1_67_0\\stage\\lib。 bjam.exe 参数说明: stage //stage 表示仅生成库文件,因为源码下的 boost 目录已经包含了完整的头文件 --toolset=msvc-11.0 //--toolset 表示使用哪个版本的 vs 编译器来编译 boost,具体 vs 版本与这里填写的数字对应关系,请自行搜索 architecture=x86 //architecture 表示编译时基于的处理器平台,需按照自己的电脑真实配置填写,但通常都是 x86 address-model=64 //address-model 表示编译为 64 位还是 32 位库 link=static //link 表示链接为静态库(库文件较大),如果填 shared 则表示链接为动态库(库文件较小) --build-type=complete //--build-type 表示编译类型,填 complete 则是完整编译 --with-system --with-thread --with-date_time --with-filesystem --with-serialization --stagedir=.\\stage\\lib //--stagedir 表示生成库文件的保存路径

boost 1.67编译VS2017版本

最近想系统学习并使用一下boost的asio异步网络库,所以需要编译boost库使用,下面简单介绍如何编译。

 

编译环境

boost1.67版本,windows 10,VS2017

 

下载boost

建议到官网去下载,目前最新的是1.67版本,链接:https://dl.bintray.com/boostorg/release/1.67.0/source/,会提供很多压缩方式的压缩包,我选择了zip版本的。

 

解压

把压缩包boost_1_67_0.zip解压到当前目录,得到boost_1_67_0目录。

 

编译

直接进入boost_1_67_0目录,双击运行脚本bootstrap.bat,编译boost编译引擎(Building Boost.Build engine)。等待几分钟,就会编译出b2.exe和bjam.exe,这小步骤就表示成功了。

新建一个build_vs2017.bat脚本文件,输入如下内容:

@ECHO OFF

ECHO Building Boost lib, vs2017

bjam.exe install --prefix="boost_1_67_vs2017" --toolset=msvc-14.1  link=static runtime-link=shared threading=multi debug release

 

执行程序bjam.exe,后面的参数可执行bjam.exe --help来了解具体内容

install                        Install headers and compiled library files to the configured locations (below).

--prefix=<PREFIX>   Install architecture independent files here.Default; C:\Boost on Win32; Default; /usr/local on Unix. Linux, etc.

toolset=toolset         Indicate the toolset to build with.

link=static|shared     Whether to build static or shared libraries

runtime-link=static|shared Whether to link to static or shared C and C++ runtime.

threading=single|multi  Whether to build single or multithreaded binaries

 

等待10多分钟,即可看到当前目录下有一个目录boost_1_67_vs2017,里面则是编译出来的库,其中还包括头文件。里面的库比较多,为了方便引用具体的库,可参考库的命名规范:

http://www.cppblog.com/Robertxiao/archive/2013/01/06/197022.html

 

总结

总体来说,boost编译还是比较简单的,或者说官方提供了比较友好的编译方式,为广大的使用者减少负担,点赞。

 

以上是关于Windows+vs2012中 boost 编译过程的主要内容,如果未能解决你的问题,请参考以下文章

为啥我无法在 win64 上使用 boost 1.54 编译 VS2012 C++ 代码?

windows下vs2015编译BOOST

怎样在VS2013中安装配置boost

用 VS2012 安装 boost 1.52

boost 1.67编译VS2017版本

VS2015编译使用Boost库遇到的问题及正确编译使用教程