VS2008下Boost库的安装编译

下载boost库(最好去官网下,一般有SGI(GCC+用的较多)和BOOST之分,VS下用BOOST)

?group_id=7586&package_id=8041

下载boost_1_55_0(最新版本执行方法一样,改下名字即可)压缩文件,解压缩到d:\boost_1_55_0\(可以任何位置,你觉得合适就可以)目录下
1.编译bjam
从开始->程序->Microsoft Visual Studio 2008->Visual Studio Tools->Visual Studio 2008 命令提示(一定要从这进),命令提示cd到d:\boost_1_55_0\下执行bootstrap.bat,会在d:\boost_1_55_0\产生bjam.exe。
2.编译boost
命令提示cd到d:\boost_1_55_0\下执行
bjam --without-python --toolset=msvc-9.0 --prefix=d:\boost install
  参数说明
  --without-python 表示不使用 python
  --toolset : 所使用compiler,Visual Studio 2008為msvc-9.0
  --prefix:指定编译后library的安裝目录
  这一步要花很长时间(大约20分钟),看你的电脑速度
3.设定vs2008环境
启动vs2008->工具->选项-> 项目和解决方案 -> VC++目录(Tools->Options->Project and Solutions->VC++ Directories)
下拉 库文件 加上d:\boost\lib
下拉 包含文件 加上d:\boost\include\boost-1_55
这样基本已经完成了!
注意:如果发现libboost_regex-vc80-mt-gd-1_34_1.lib之类文件提示错误时,是找不到该文件!
就到D:\boost\lib把对应的文件libboost_regex-vc90-mt-gd-1_55.lib改为libboost_regex-vc80-mt-gd-1_55.lib(可以用记事本或者写字板打开,然后保存)就可以一般是80和90的差别(2005是80,2008是90) 

不知说的够详细不,希望不清楚的同学留言,我每天都登陆,可以帮忙解决问题。

可以使用 bjam --help查看帮助。下面是编译共享和静态的参数。

bjam stage --toolset=msvc-9.0 --stagedir="d:\boost\lib\"link=shared runtime-link=shared threading=multi debug release

bjam stage --toolset=msvc-9.0 --stagedir="d:\boost\lib\"link=staticruntime-link=staticthreading=multi debug release

Boost程序库完全开发指南——深入C++“准”标准库高清PDF版

Ubuntu下编译安装boost库

Ubuntu下编译boost 1.52b

Ubuntu编译安装boost并在eclipse C/C++中使用  

Boost官网的《Geting Started On Windows》()提到了Boost库的命名,摘录如下:

以 libboost_regex-vc71-mt-d-1_34.lib 为例:

lib
前缀:除了Microsoft Windows之外,每一个Boost库的名字都以此字符串开始。在Windows上,只有普通的静态库使用lib前缀;导入库和DLL不使用。

boost_regex
库名称:所有boost库名文件以boost_开头。

-vc71
Toolset 标记:标识了构建该库所用的toolset和版本。

-mt
Threading 标记:标识构建该库启用了多线程支持。不支持多线程的库没有-mt。

-d
ABI标记:编码了影响库和其他编译代码交互的细节。对于每一种特��,向标记中添加一个字母:
Key   Use this library when:  
s   静态链接到C++标准库和编译器运行时支撑库  
g   使用标准库和运行时支撑库的调试版本  
y   使用Python的特殊调试构建  
d   构建代码的调试版本  
p   使用STLPort标准库而不是编译器提供的默认库  
n   使用STLPort已被弃用的“native iostreams”  

-1_34
版本标记:完整的Boost发布号,下划线代替点。例如,1.31.1版本将被标记为“-1_31_1”。

.lib
扩展名:取决于操作系统。在大多数unix平台上,.a是静态库,.so是共享库。在Windows上,.dll表示共享库,.lib是静态或导入库。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/939f67f12e88be14e17898daca9330c3.html