Linux系统中如何编译boost
今天给大家介绍一下Linux系统中如何编译boost。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。
Linux平台Boost的编译方法
Boost就是Boost库,它是一个可移植、并且提bai供源代码的C++库,而且它作为标准库的后备,是C++标准化进程的开发引擎之一。
Boost的编译使用的不是已经成为公认标准的make,而是专门为Boost开发的工具bjam(boost jam)。
以boost1.40为例,在Linux平台的编程环境为gcc4.4.1,假设Boost代码在/usr/class="lazy" data-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/class="lazy" data-src/boost_1_40_0/tools/jam/class="lazy" data-src
(2) # ./build.sh
编译完成后:
生成的可执行文件为
# /usr/class="lazy" data-src/boost_1_40_0/tools/jam/class="lazy" data-src/bin.linuxx86**/bjam**
需要将bjam.exe拷贝到源代码所在的目录 # cp bin.linuxx86/bjam /usr/class="lazy" data-src/boost_1_40_0
方法3:
(1) # cd /usr/class="lazy" data-src/boost_1_40_0
(2) # ./bootstrap.sh
该方法直接在Boost源代码目录下生成bjam文件。
2.修改bjam配置
使用bjam前,需要修改bjam的配置文件。Linux平台的配置文件:
/usr/class="lazy" data-src/boost_1_40_0/tools/build/v2/user-config.jam
修改如下。注:笔者在实验时,不修改貌似也很正常。
将43行的“# using gcc ;”前的注释符号‘#’去掉,表明用到使用gcc编译。
如果要使用STLport作为其标准库,将75行前的‘#’去掉。
\3. 完整编译Boost
对Boost进行完整编译,生成所有调试版、发行版的静态库和动态库。
方法1:
# cd /usr/class="lazy" data-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/class="lazy" data-src/boost_1_40_0/tools/jam
# ./build_dist.sh
也会完成Linux平台bjam和Boost的所有编译工作,并生成所有调试版、发行版的静态库和动态库。但不推荐该方式。
编译成功后,将在/usr/class="lazy" data-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/class="lazy" data-src/boost_1_40_0
# ./bjam –toolset=msvc –with-date_time –build-type=complete stage
以上就是Linux系统中如何编译boost的全部内容了,更多与Linux系统中如何编译boost相关的内容可以搜索编程网之前的文章或者浏览下面的文章进行学习哈!相信小编会给大家增添更多知识,希望大家能够支持一下编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341