boost 安装


boost 下载地址:http://www.boost.org/users/download/

运行bootstrap.bat 生成bjam.exe (1.52版本,其它略有不同)


编译命令:编译时用到了两个命令,用第一个命令编译时没有生成带sgd的lib所以又用了第二个命令编译,对第二个编译有不明白的地方

bjam toolset=msvc-10.0 variant=debug,release threading=multi link=static //

bjam --tooset=msvc-10.0.0 --prefix=x:\boost debug runtime-link=static stage   //生成带sgd字符的静态debug版的lib和dll文件


--------------------------------------------------------------------

编译环境:Windows XP SP3 vs2005 版本8.0.50727.762

首先在www.boost.org下载jam和boost最新的源代码(本文为jam_version=3.1.17 boost_version=1.38.0),将boost源代码解压缩到x:\boost\目录下,将jam源代码解压到x:\boost\jam\目录下。
然后打开Visual Studio 2005 命令提示来到x盘下进入jam目录,下面有个build.bat文件。
在命令行输入build msvc 8.0,执行完成后会在该目录下生成一个bin.ntx86的目录,将目录中的bjam.exe拷贝到x:\boost\目录下.
现在将命令行定位到x:\boost编译时通过设置参数可以指定编译器和编译版本以及存放路径,这里没有编译python.

bjam --toolset=msvc-8.0 --prefix=x:\boost stage
这个命令将会生成release版的lib和dll文件
bjam --toolset=msvc-8.0 --prefix=x:\boost debug stage
这个命令将会生成带gd字符的debug版的lib和dll文件
bjam --tooset=msvc-8.0 --prefix=x:\boost debug runtime-link=static stage
这个命令将会生成带sgd字符的静态debug版的lib和dll文件

如果不是用--prefix参数将默认生成在c:\boost目录下
编译完成后可以建立一个bat文件自动将生成的lib和dll文件拷贝到lib目录下面
cplib.bat
dir /W/S/B *vc80*.lib,*vc80*.dll >liblist
if exist lib (echo exist lib fold) else (mkdir lib)
for /f %%x in (liblist) do @copy "%%x" lib\
拷贝之后可以做一下清理工作,同个建立一个bat文件来自动清理编译过程产生的.obj文件
delobj.bat
del /s/q *.obj
将这两个文件放在x:\boost目录下执行就可以了。

在编译过程中会自动生成三个文件夹,按生成先后顺序分别是bin.v2,lib其中bin.v2目录在X:\boost中,是编译时存放lib,dll和obj文件的地方,lib目录在X:\boost\stage中,是存放编译完成后的所有lib,dll文件的目录。如果空间十分紧张,可以删除bin.v2目录

最后配置项目环境
include: Tools-->Options-->Projects and Solutions-->VC++ Directories
              在Show Directories for 选择Include files 添加路径:X:\boost
Linker:Tools-->Options-->Projects and Solutions-->VC++ Directories
              在Show Directories for 选择Include files 添加路径:X:\boost\stage\lib
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1.33
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1、启动“Visual Studio 2005 命令提示”。
2、安装“Boost-1.33.1”到“C:\Boost-1.33.1”或其他任意盘。
3、在命令行输入“CD C:\boost_1_33_1\tools\build\jam_src”进入目录。
4、执行批处理文件“build.bat”编译“bjam.exe”文件。
5、将“bjam.exe”文件复制到“C:\Windows”下,以便在Windows所有目录下都可以使用“bjam.exe”命令。
6、打开“C:\boost_1_33_1\tools\build\v2”目录下的“user-config.jam”文件。
7、在“# using msvc ;”行之下添加“using vc-8_0 ;”,以便使用VS2005编译Boost。
8、在命令行输入“CD C:\boost_1_33_1”进入Boost根目录,准备编译Boost。
9、在命令行C:\boost_1_33_1> 输入“bjam "-sTOOLS=vc-8_0" install”回车开始编译Boost。
10、等待编译,时间较长,编译需要3-4GB的空间,编译完后可以看见“C:\Boost”目录,即为以编译的文件。原目录下也有一份编译后的文件。


Tools -> Options -> Projects and Solutions -> VC++ Directories         

  • 在 Library files 加上 c:\boost\lib
  • 在 Include files 加上 c:\Boost\include\boost1_33_1

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
regex
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1、打开vs2005在菜单tools中选择Visual Studio 2005 Command Prompt,打开已配置好环境的命令行。
  2、进入目录boost_1_34_1\libs\regex\build,
  编译文件:nmake -f vc8.mak
  安装(将编译好的文件复制到vs2005的特定目录下):nmake -f vc8.mak install
  删除临时文件:nmake -f vc8.mak clean
  3、Tools->Options->Projects and Solutions->VC++ Directories->Include files添加boost_1_34_1路径

  初次使用提示找不到libboost_regex-vc80-mt-gd-1_34_1.lib文件,到网上搜了下解决方法为:将libboost_regex-vc80-mt-gd-1_34.lib改名libboost_regex-vc80-mt-gd-1_34_1.lib放到vs或工程目录下。

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
通用编辑说明
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Boost库本身不用多介绍,每个用C++的人都对它有或多或少的概念。尽管它存在着是否过度设计、是否学院派这类的争论,不过作为C++标准库的后备它的优秀是谁也否认不了的。下面是网上摘录的一段:

  • 这世上总会有一些智慧让你吃惊。Boost就是这样的东西。
  • Boost没有修改C++的任何规则。它是一个完全符合C++规范的代码库。

对于大部分Boost应用来说,它是不用编译的,直接包含头文件就可使用,如:

any
array
asio
conversion
crc
bind/mem_fn
enable_if
function
lambda
mpl
smart_ptr
...

只有少部分需要编译成库文件,需要编译的库如下:

date_time
filesystem
function_types
graph
iostreams
math
mpi
program_options
python
regex
serialization
signals
system
test
thread
wave

再次啰嗦一句,如果代码中用不到这部分需要编译的Boost库,完全可以不用花时间编译,直接包含头文件即可。

开始编译第一步:得到Boost(少说费话,写再多字也没稿费!)

本文对应的版本是Boost.1.37.0。
下载地址:http://www.boost.org/users/download/
解压,本文假设解压到D:\Boost_1_37_0

第二步:得到bjam程序

Boost库由一系列库组成,为了简化编译,就搞了个bjam这个工具出来。
想偷懒就直接下载可执行版本,下载地址。Windows版的是有ntx86后缀的那个。
想自己动手先做编译Boost前热身的就接着往下看:

  1. 进入控制台(如果是VC的建议从”Visual Studio 命令提示“进入)
  2. 用cd命令进入boost目录下的tools\jam\src目录,如文本是:D:\Boost_1_37_0\tools\jam\src
  3. 使用build命令编译bjam
    • BCC5.5/BCB6/BCB2006/CB2009用户输入build borland
    • VC用户依据其版本输入build vc7vc8vc9
    • Mingw用户输入build mingw
    • 注意,由于build对含有空格的路径名支持不好,所以有时会编译失败,这时可以通过set path=命令修改编译器的路径为8.3格式(可以用dir /x来查看对应的8.3格式是什么名字)
  4. 把生成的bjam.exe(bin.ntx86目录下)拷贝到Boost根目录下,如文本是:D:\Boost_1_37_0
使用bjam编译Boost

输入命令:

bjam  --toolset=borland(对应BCB)或msvc(对应VC)或gcc(对应Mingw) stage

就开始编译了,编译时间比较长(大概半小时左右,依编译器以及选项不同而不同),编译好的文件会放在.\stage\lib(依--stagedir=命令决定)里。

bjam还有几个很有用的选项:

bjam参数 --build-dir=<builddir> 编译的临时文件会放在builddir里(这样比较好管理,编译完就可以把它删除了) --stagedir=<stagedir> 存放编译后库文件的路径,默认是stage --build-type=complete 编译所有版本,不然只会编译一小部分版本(确切地说是相当于:variant=release, threading=multi;link=shared|static;runtime-link=shared) variant=debug|release 决定编译什么版本(Debug or Release?) link=static|shared 决定使用静态库还是动态库。 threading=single|multi 决定使用单线程还是多线程库。 runtime-link=static|shared 决定是静态还是动态链接C/C++标准库。 --with-<library> 只编译指定的库,如输入--with-regex就只编译regex库了。 --show-libraries 显示需要编译的库名称

--------------------------------------------------------------------------------------------------------------------

你可能感兴趣的:(boost 安装)