vs2008下安装使用boost库

在网上下载Boost_1_46_1版本 安装编译步骤如下:

1. 将下载好的boost文件解压到本地磁盘C:/boost_1_46_1文件夹下。

2. 打开vs2008依次进入菜单栏的tools->visual studio 2008 Command Prompt,cd 到目录C:/boost_1_46_1/tools/build/v2下,输入bootstrap.bat命令点回车后生成bjam.exe文件。将此文件拷贝至C:/boost_1_46_1下。

3. 将VS2008的Command Prompt的执行目录cd至C:/boost_1_46_1,

    输入命令:bjam --toolset=msvc-9.0 --build-type=complete stage 后开始编译(此过程需要几十分钟的时间)。

4.编译完成后生成的库文件位于C:/boost_1_46_1/stage/lib下。

5.在VS2008中,设置include路径和lib路径.

(注:在2008环境下这步,在项目-->右键属性-->VC++ Directories 中去填写对应路径 )   
Tools -> Options -> Projects and Solutions -> VC++ Directories   
在Library files加上C:\boost\boost_1_46_1\lib   
在Include files加上C:\boost\boost_1_46_1\include

 

关于BOOST库的基本知识:

boost库分类:

(1)不需要编译库:any、array、asio、conversion、crc、bind/mem_fn、enable_if、function、lambda、mpl、smart_ptr...

(2)需要编译的库:date_time、filesystem、function_types、graph、iostreams、math、mpi、program_options、python、regex、serialization、signals、system、test、thread、wave

使用举例:

  #include<boost\thread.hpp>

  此时,不用包含库文件,boost的auto-link机制将会自动帮我们包含对应的静态lib。也就是说,boost默认是以静态方式链接的,这样我们的工程属性最好也设为Multi-threaded (Debug)。如果想使用dll动态方式链接,需要预先定义宏:

  #define BOOST_ALL_DYN_LINK

  同样,此时boost也会默认帮我们包含对应的lib。如果不想使用boost提供的auto-link机制,或者对它的自动链接不太放心的话(其实大可不必担心),可以预先定义宏:

  #define BOOST_ALL_NO_LIB

  然后使用以下方法链接:

  #pragma comment(lib, "boost_thread-vc100-mt-1_46.lib")或

  #pragma comment(lib, "boost_thread-vc100-mt.lib")

  这两个lib其实是一样的,实在不明白boost编译时为什么每个库都要复制一份,难道是因为后者在升级boost版本后不用改代码?另外还有一个比较有用的宏:

  #define BOOST_LIB_DIAGNOSTIC

  它可以让VC在编译时的output窗口中输出程序具体链接了哪些boost库以及链接顺序。

  关于boost的auto-link机制,详细可以看看boost\config\auto_link.hpp里的代码,很容易可以读懂,并且值得我们学习。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值