手机版
你好,游客 登录 注册
背景:
阅读新闻

Linux平台Boost的编译方法

[日期:2011-05-27] 来源:csdn  作者:阿波ID:livelylittlefish [字体: ]

Linux平台Boost的编译方法

 

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

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

 

1. 获得bjam

 

获得bjam3种方式,如下:

方法1Boost网站上提供了各种平台上预编译好的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平台bjamBoost的所有编译工作,并生成所有调试版、发行版的静态库和动态库。但不推荐该方式。

 

编译成功后,将在/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

 

当然,bjam还有很多其他选项,如指定安装路径,指定debugrelease等,可参考bjam文档或帮助

linux
相关资讯       Linux编程  Boost 
本文评论   查看全部评论 (1)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 1 楼
* 老杨 发表于 2011/9/2 19:06:45
不行呀,还是装不上