BOOST安装或编译

来源:互联网 发布:什么是php 编辑:程序博客网 时间:2024/05/21 10:10

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

根据VS版本和操作系统位数下载合适的版本安装
NameModifiedSizeDownloads / WeekStatusParent folderSHA256SUMS.asc2016-09-272.4 kB3iSHA256SUMS2016-09-271.5 kB4iDEPENDENCY_VERSIONS.txt2016-09-27397 Bytes86iboost_1_62_0-msvc-9.0-64.exe2016-09-27260.5 MB175iboost_1_62_0-msvc-9.0-32.exe2016-09-27233.1 MB106iboost_1_62_0-msvc-8.0-64.exe2016-09-27258.6 MB12iboost_1_62_0-msvc-8.0-32.exe2016-09-27229.5 MB13iboost_1_62_0-msvc-14.0-64.exe2016-09-27277.0 MB1,303iboost_1_62_0-msvc-14.0-32.exe2016-09-27255.4 MB626iboost_1_62_0-msvc-12.0-32.exe2016-09-27244.8 MB301iboost_1_62_0-msvc-12.0-64.exe2016-09-27267.3 MB447iboost_1_62_0-msvc-11.0-64.exe2016-09-27273.0 MB77iboost_1_62_0-msvc-10.0-64.exe2016-09-27257.4 MB117iboost_1_62_0-msvc-11.0-32.exe2016-09-27250.1 MB28iboost_1_62_0-msvc-10.0-32.exe2016-09-27235.1 MB68iboost_1_62_0-bin-msvc-all-32-64.7z2016-09-261.5 GB161iboost_1_62_0-32bitlog.txt2016-09-2630.0 kB22iboost_1_62_0-64bitlog.txt2016-09-2623.6 kB16 Totals: 18 Items 4.6 GB3,565 
安装后设置系统变量BoostDir和BoostLibs

在VS工程中创建两个宏 $(BoostDir), $(BoostLibs),就可以不用使用绝对路径了。

  • BOOST源码编译
源码https://sourceforge.net/projects/boost/,下载后解压

从开始--Microsoft Visual Studio 2013找到 Visual Studio Tools:


打开文件夹,选择VS2013 x86 Native Tools Command
双击,打开命令窗口

切换到boost_1_62_0目录

首先需要运行bootstrap.bat来生成boost库的编译引擎:b2.exe,bjam.exe(很重要)。
运行C:\boost_1_62_0\bootstrap.bat

编译,可以简单的使用b2 install,也可以指定存放目录。
// 如果要获取动态库
bjam install stage --toolset=msvc-12.0 --stagedir="C:\boost_1_62_0\lib64-msvc-12.0" link=shared runtime-link=shared threading=multi debug release  
// 如果是要获取静态库:
bjam install stage --toolset=msvc-12.0 --stagedir="C:\boost_1_62_0\lib64-msvc-12.0" link=static runtime-link=static threading=multi debug release  

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

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

出现:python error LNK2001
解决办法:设置Python路径和版本
set PYTHON_ROOT=c:\Python27set 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等。
(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版本,所以两个都编译。

0 0
原创粉丝点击