转载自: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
分享到:
相关推荐
以下将详细介绍如何在Linux平台上编译和安装Boost1.83.0版本。 首先,你需要确保系统中已经安装了必要的依赖项。对于编译Boost,通常需要`gcc`或`g++`编译器,以及`bzip2`库。可以通过以下命令检查和安装这些依赖:...
Boost库是C++编程语言的一个开源库集合,它提供了许多高效、跨平台的工具和库,以增强C++的功能和可扩展性。1.68版本是Boost的一个稳定...在Linux环境下,正确编译和使用Boost库能够为C++开发者带来强大的功能支持。
2. **依赖库**:为了编译MySQL 5.7.32,你可能需要安装以下库:`gcc/g++`,`make`,`cmake`,`openssl`,`ncurses`,`zlib`,`bzip2`,以及Boost库。在不同的操作系统中,安装这些库的方法会有所不同。 3. **解压...
"mysql-boost-5.7.24.tar.gz" 是一个包含了MySQL与Boost集成的源码包,版本为5.7.24,适用于Linux环境下的LNMP(Linux、Nginx、MySQL、PHP)架构搭建。 **MySQL 5.7.24 知识点** MySQL 5.7是MySQL的一个重要版本,...
环境: Linux s12084 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:58:04 EST 2007 i686 i686 i386 GNU/Linux...在windows 平台, linux 平台下编译都很顺利。hp aCC 也宣称对 boost 1.35 完全支持 。 全部编译是很痛苦的过程
### Linux下编译Boost.Python的方法详解 #### 一、引言 在现代软件开发中,混合编程(例如C++与Python结合)变得越来越常见。Boost.Python库作为连接这两种语言的强大桥梁,使得C++代码能够轻松地调用Python脚本...
4. 使用`./b2 --toolset=gcc-4.8.5 --with-python=/usr/local/python3`来配置Boost编译,这里指定了GCC编译器和Python3的位置。 5. 若要包含特定的Boost组件,例如Boost.Thread、Boost.Date_Time和Boost.Chrono,...
在Linux或类Unix系统中,这种格式的文件通常用于分发软件,因为它可以节省磁盘空间并方便跨平台传输。 MySQL 5.7.27包含了若干关键性的改进和增强,包括性能优化、新的功能和对安全性的提升。以下是关于这个版本的...
`mysql-boost-5.7.26.tar.gz`是一个包含MySQL源代码的压缩包,适用于Linux操作系统,并且需要通过编译来安装。这个版本(5.7.26)是在MySQL 5.7系列中的一个稳定版本,它在性能、安全性和功能方面都有显著提升。 **...
这个文件采用tar.gz格式,这是一种常见的在Linux和Unix-like操作系统中用于打包和压缩文件的方法。它首先使用tar命令将多个文件或目录打包成一个单一的档案文件,然后用gzip压缩该档案,以节省存储空间。 MySQL 5.7...
"boost-boost-1.67.0.tar.gz" 是Boost库的一个特定版本,即1.67.0版,其文件格式为tar.gz,这是一种常见的Unix/Linux系统下的文件压缩格式,由tar打包工具和gzip压缩工具联合处理而成。 在描述中提到,"Boost 1.67 ...
这个“mysql-boost-5.7.14.tar.gz”文件是一个针对Linux操作系统的源码压缩包,它包含了编译和安装MySQL 5.7.14所需的所有文件。"boost"可能指的是Boost C++库,这是一个广泛使用的C++工具集,用于提升开发效率和...
它与开源社区的许多项目兼容良好,如Boost, Qt, OpenGL库等,是Linux开发者常用的工具之一。 总之,“cmake-3.16.5-Linux-x86_64.tar.gz”提供了一个强大的跨平台构建工具,用于简化和标准化软件开发过程。正确安装...
在本资源中,我们关注的是如何编译Boost的静态库,特别是1.58版本。 首先,理解什么是静态库至关重要。静态库是在编译时直接链接到目标程序中的库,这意味着程序在运行时不需要依赖外部库文件,所有的库代码都被...
CMake支持多种语言,如C、C++、Fortran等,并且能够很好地与其他开源项目集成,如Qt、Boost等。其优点在于简化了多平台构建的复杂性,使得开发者不必为每个平台编写不同的构建脚本。此外,CMake的模块化设计使得扩展...
3. 初始化Boost构建系统,运行`./bootstrap.sh`(在Unix/Linux系统上)或批处理文件`bootstrap.bat`(在Windows上)。 4. 配置CMake,指定安装路径和所需的编译器选项。例如,使用`cc`和`cxx`环境变量指定C和C++...
在Linux环境中,开发者可以使用`cmake .`在当前目录生成Makefile,然后通过`make`进行编译,使用`make install`将程序安装到系统路径。对于更复杂的项目,`ccmake`提供了一个图形界面用于交互式配置,而`ctest`则...
MySQL是一个开源、免费的关系型数据库管理系统,基于结构化查询语言(SQL),支持多种操作系统,包括Windows、Linux、Unix等。它以其高效率、稳定性以及易于管理的特点,被广泛应用于Web应用程序和企业级项目中。...