zoukankan      html  css  js  c++  java
  • Linux平台Boost的编译方法

    本博客(http://blog.csdn.net/livelylittlefish )贴出作 者(三二一@小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正!

    Linux平台Boost的编译方法

     

    Boost的编译使用的不是已经成为公认标准的make,而是专门为Boost开发的工具bjam(boost jam)

    本文以boost1.40为例,在Linux平台的编程环境为gcc4.4.1,假设Boost代码在/usr/src/boost_1_40_0目录,步骤如下。

     

    1. 获得bjam

     

    获得bjam3种方式,如下:

    方法1Boost网站上提供了各种平台上预编译好的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平台bjamBoost的所有编译工作,并生成所有调试版、发行版的静态库和动态库。但不推荐该方式。

     

    编译成功后,将在/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还有很多其他选项,如指定安装路径,指定debugrelease等,可参考bjam文档或帮助

  • 相关阅读:
    阿里云CDN缓存加速学习总结
    阿里云SLB学习总结
    zabbix3.2安装
    drf中的增删改查接口
    drf中二次封装Response
    drf常用模块
    Django—auth模块
    csrf跨站请求伪造与CBV装饰器
    Django—cookie与session
    Django—中间件(待更新)
  • 原文地址:https://www.cnblogs.com/skyofbitbit/p/3651446.html
Copyright © 2011-2022 走看看