加入收藏 | 设为首页 | 会员中心 | 我要投稿 南通站长网 (https://www.0513zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Linux平台Boost的编译技巧

发布时间:2021-11-25 21:46:15 所属栏目:教程 来源:互联网
导读:Linux平台Boost的编译方法 Boost的编译使用的不是已经成为公认标准的make,而是专门为Boost开发的工具bjam(boost jam)。 本文以boost1.40为例,在Linux平台的编程环境为gcc4.4.1,假设Boost代码在/usr/src/boost_1_40_0目录,步骤如下。 1. 获得bjam 获得bja

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
 
 
 
当然,bjam还有很多其他选项,如指定安装路径,指定debug或release等,可参考bjam文档或帮助。

(编辑:南通站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读