`
mylove2060
  • 浏览: 335901 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Linux平台Boost的编译方法 .

 
阅读更多
转载自: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版本压缩包

    以下将详细介绍如何在Linux平台上编译和安装Boost1.83.0版本。 首先,你需要确保系统中已经安装了必要的依赖项。对于编译Boost,通常需要`gcc`或`g++`编译器,以及`bzip2`库。可以通过以下命令检查和安装这些依赖:...

    boost库1.68版本Linux下编译的动态库和静态库

    Boost库是C++编程语言的一个开源库集合,它提供了许多高效、跨平台的工具和库,以增强C++的功能和可扩展性。1.68版本是Boost的一个稳定...在Linux环境下,正确编译和使用Boost库能够为C++开发者带来强大的功能支持。

    mysql-boost-5.7.32.tar.gz

    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.tar.gz" 是一个包含了MySQL与Boost集成的源码包,版本为5.7.24,适用于Linux环境下的LNMP(Linux、Nginx、MySQL、PHP)架构搭建。 **MySQL 5.7.24 知识点** MySQL 5.7是MySQL的一个重要版本,...

    Linux boost库安装、编译问题小记

    环境: 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简单方法

    ### Linux下编译Boost.Python的方法详解 #### 一、引言 在现代软件开发中,混合编程(例如C++与Python结合)变得越来越常见。Boost.Python库作为连接这两种语言的强大桥梁,使得C++代码能够轻松地调用Python脚本...

    Linux+boost+python3+gcc编译说明文档1

    4. 使用`./b2 --toolset=gcc-4.8.5 --with-python=/usr/local/python3`来配置Boost编译,这里指定了GCC编译器和Python3的位置。 5. 若要包含特定的Boost组件,例如Boost.Thread、Boost.Date_Time和Boost.Chrono,...

    mysql-boost-5.7.27.tar.gz

    在Linux或类Unix系统中,这种格式的文件通常用于分发软件,因为它可以节省磁盘空间并方便跨平台传输。 MySQL 5.7.27包含了若干关键性的改进和增强,包括性能优化、新的功能和对安全性的提升。以下是关于这个版本的...

    mysql-boost-5.7.26.tar.gz

    `mysql-boost-5.7.26.tar.gz`是一个包含MySQL源代码的压缩包,适用于Linux操作系统,并且需要通过编译来安装。这个版本(5.7.26)是在MySQL 5.7系列中的一个稳定版本,它在性能、安全性和功能方面都有显著提升。 **...

    mysql-boost-5.7.17.tar.gz

    这个文件采用tar.gz格式,这是一种常见的在Linux和Unix-like操作系统中用于打包和压缩文件的方法。它首先使用tar命令将多个文件或目录打包成一个单一的档案文件,然后用gzip压缩该档案,以节省存储空间。 MySQL 5.7...

    boost-boost-1.67.0.tar.gz

    "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

    这个“mysql-boost-5.7.14.tar.gz”文件是一个针对Linux操作系统的源码压缩包,它包含了编译和安装MySQL 5.7.14所需的所有文件。"boost"可能指的是Boost C++库,这是一个广泛使用的C++工具集,用于提升开发效率和...

    cmake-3.16.5-Linux-x86_64.tar.gz

    它与开源社区的许多项目兼容良好,如Boost, Qt, OpenGL库等,是Linux开发者常用的工具之一。 总之,“cmake-3.16.5-Linux-x86_64.tar.gz”提供了一个强大的跨平台构建工具,用于简化和标准化软件开发过程。正确安装...

    编译boost静态库 boost 1.58版本资源

    在本资源中,我们关注的是如何编译Boost的静态库,特别是1.58版本。 首先,理解什么是静态库至关重要。静态库是在编译时直接链接到目标程序中的库,这意味着程序在运行时不需要依赖外部库文件,所有的库代码都被...

    cmake-3.21.1-linux-x86_64.tar.gz

    CMake支持多种语言,如C、C++、Fortran等,并且能够很好地与其他开源项目集成,如Qt、Boost等。其优点在于简化了多平台构建的复杂性,使得开发者不必为每个平台编写不同的构建脚本。此外,CMake的模块化设计使得扩展...

    boost-boost-1.71.0.tar.gz

    3. 初始化Boost构建系统,运行`./bootstrap.sh`(在Unix/Linux系统上)或批处理文件`bootstrap.bat`(在Windows上)。 4. 配置CMake,指定安装路径和所需的编译器选项。例如,使用`cc`和`cxx`环境变量指定C和C++...

    cmake-3.22.1-linux-x86_64.tar.gz

    在Linux环境中,开发者可以使用`cmake .`在当前目录生成Makefile,然后通过`make`进行编译,使用`make install`将程序安装到系统路径。对于更复杂的项目,`ccmake`提供了一个图形界面用于交互式配置,而`ctest`则...

    mysql-boost-8.2.0.tar.gz

    MySQL是一个开源、免费的关系型数据库管理系统,基于结构化查询语言(SQL),支持多种操作系统,包括Windows、Linux、Unix等。它以其高效率、稳定性以及易于管理的特点,被广泛应用于Web应用程序和企业级项目中。...

Global site tag (gtag.js) - Google Analytics