良许Linux教程网 干货合集 Linux系统-linux编译boost

Linux系统-linux编译boost

Linux平台Boost的编译方法

Boost就是Boost库,它是一个可移植、并且提bai供源代码的C++库,而且它作为标准库的后备,是C++标准化进程的开发引擎之一。

u=1182967796,2453680315&fm=26&gp=0

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

 

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部