BOOST安装或编译

Boost库是为C++语言标准库提供扩展的一些C++ 程序库 的总称。
Boost库由Boost社区组织开发、维护。其目的是为C++程序员提供免费、同行审查的、可移植的程序库。 Boost库 可以与C++标准库完美共同工作,并且为其提供扩展功能。
Boost库使用Boost License来授权使用。
大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的库,如graph库。

选择VS2015 x86 Native Tools Command
双击,打开命令窗口 切换到boost_1_66_0目录

首先需要运行bootstrap.bat来生成boost库的编译引擎:b2.exe,bjam.exe(很重要)。
运行C:\boost_1_66_0\bootstrap.bat
编译,可以简单的使用b2 install,也可以指定存放目录。

// 如果要获取动态库
bjam install stage --toolset=msvc-14.0 --stagedir="C:\boost_1_66_0\lib" link=shared runtime-link=shared threading=multi debug release  

// 如果是要获取静态库:
bjam install stage --toolset=msvc-14.0 --stagedir="C:\boost_1_66_0\lib" link=static runtime-link=static threading=multi debug release  

注意:
  1. 修改--toolset=msvc-14.0,将14.0修改成对应的vs版本号,14.0是VS2015的版本号。
  2. 目标地址也要修改成你所需的。
  3. 不要漏了install,它会帮你把头文件集合到一个文件夹中。      编译过程有一个复制过程,编译需要的时间比较长,本次编译过程中,会在C盘根目录下生成一个boost文件夹,然后包含include和lib文件夹,这就是我们将要使用的头文件和库文件。

  • 编译boost.Python库生成动态连接库
bjam stage address-model=64 architecture=x86 --toolset=msvc-14.0 --with-python --stagedir="C:\boost_1_66_0\lib" link=shared runtime-link=shared threading=multi debug release

出现:python error LNK2001
解决办法:设置Python路径和版本
set PYTHON_ROOT=c:\Python27 set PYTHON_VERSION=2.7
成功

  • bjam程序的输入参数
(1)stage/install:
stage表示只生成库(dll和lib),install还会生成包含头文件的include目录。
(2)toolset:
指定编译器,可选的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008)、 msvc-12.0( VS2013 msvc-14.0(VS2015 等。
(3)without/with:
选择不编译/编译哪些库。根据各人需要进行选择,默认是全部编译。
如果选择编译python的话,是需要python语言支持。
(4)stagedir/prefix:
stage时使用stagedir,install时使用prefix ,表示编译生成文件的路径。
(5)build-dir:
编译生成的中间文件的路径。
(6)link:
生成动态链接库/静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。一般boost库可能都是以static方式编译,因为最终发布程序带着boost的dll感觉会比较累赘。
(7)runtime-link:
动态/静态 链接C/C++运行时库 。同样有shared和static两种方式,这样runtime-link和link一共可以产生4种组合方式。
(8)threading:
单/多线程编译。一般都写多线程程序,当然要指定multi方式了;如果需要编写单线程程序,那么还需要编译单线程库,可以使用single方式。
(9)debug/release:
编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译。

猜你喜欢

转载自blog.csdn.net/i7thTool/article/details/79842063