Linux平台Boost的编译方法 .

转载自:http://blog.csdn.net/livelylittlefish/archive/2010/12/24/6095658.aspx

Linux平台Boost的编译方法



Boost的编译使用的不是已经成为公认标准的make,而是专门为Boost开发的工具bjam(boost jam)。

本文以boost1.40为例,在Linux平台的编程环境为gcc4.4.1,假设Boost代码在/usr/src/boost_1_40_0目录,步骤如下。



1. 获得bjam



获得bjam有3种方式,如下:


方法1:Boost网站上提供了各种平台上预编译好的bjam可执行程序,可直接下载使用。


方法2:从Boost源代码中提供的bjam代码编译出可执行程序。


方法3:通过bootstrap程序生成bjam。



方法1:

# apt-get install bjam



方法2:

(1) # cd /usr/src/boost_1_40_0/tools/jam/src

(2) # ./build.sh



编译完成后:


生成的可执行文件为

# /usr/src/boost_1_40_0/tools/jam/src/bin.linuxx86/bjam

需要将bjam.exe拷贝到源代码所在的目录
# cp bin.linuxx86/bjam /usr/src/boost_1_40_0



方法3:

(1) # cd /usr/src/boost_1_40_0

(2) # ./bootstrap.sh

该方法直接在Boost源代码目录下生成bjam文件。



2. 修改bjam配置



使用bjam前,需要修改bjam的配置文件。Linux平台的配置文件:

/usr/src/boost_1_40_0/tools/build/v2/user-config.jam



修改如下。注:笔者在实验时,不修改貌似也很正常。



将43行的“# using gcc ;”前的注释符号‘#’去掉,表明用到使用gcc编译。

如果要使用STLport作为其标准库,将75行前的‘#’去掉。



3. 完整编译Boost



对Boost进行完整编译,生成所有调试版、发行版的静态库和动态库。



方法1:

# cd /usr/src

# wget http://sourceforge.net/projects/boost/files/boost/1.40.0/boost_1_40_0.tar.bz2

# tar --bzip2 -xvf boost_1_40_0.tar.bz2

# cd boost_1_40_0



# bjam --toolset=gcc --build-type=complete stage



# ./bjam --build-type=complete --layout=versioned



# ./bjam



方法2:

# cd /usr/src/boost_1_40_0/tools/jam

# ./build_dist.sh

也会完成Linux平台bjam和Boost的所有编译工作,并生成所有调试版、发行版的静态库和动态库。但不推荐该方式。



编译成功后,将在/usr/src/boost_1_40_0/bin.v2目录下生成诸多文件,包括.a和.so.1.40.0文件,这就是在Linux平台要使用Boost需要的,其他的文件可以删除。



安装

# ./bjam install

将生成的库默认安装到/urs/local/lib目录。



4 部分编译Boost



完整编译Boost费时费力,且这些库在开发过程中并不一定全部用到,因此,bjam也支持用户自行选择要编译的库。



在完全编译的基础上,使用--with或者—without选择可以打开或者关闭某个库的编译,例如,仅仅编译date_time库:

# cd /usr/src/boost_1_40_0

# ./bjam --toolset=msvc --with-date_time --build-type=complete stage
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值