zoukankan      html  css  js  c++  java
  • linux下编译boost

    原文出处:http://blog.ehomy.net/archives/148

    工作平台:Fedora 12

    获取boost库

    Linux下官方提供了两个压缩版本:
    boost_1_43_0.tar.bz2
    boost_1_43_0.tar.gz



    找到其中一个Unix/Linux包的直接下载地址,然后输入下列命令

    sudo wget http://downloads.sourceforge.net/project/boost/boost/1.43.0/boost_1_43_0.tar.gz?use_mirror=cdnetworks-kr-1

    解压
    tar -zxvf boost_1.43.0.tar.gz

    进入解压目录
    cd boost_1_43_0

    编译安装

    使用下面的命令创建boost自己的编译工具bjam(目的是保证Boost在任何平台上都能用bjam编译),类似于GNU Make。
    ./bootstrap.sh --prefix=/home/usrname/boost_1_43_0/boost_install

    boost将被安装到/boost_install目录下,不知名prefix将默认安装到/usr/local/include和/usr/local/lib下。

    建议先查看下帮助文档,了解些默认选项,命令为
    ./bjam –help

    .bjam命令的格式为:bjam [options] [properties] [targets]

    常用选项(Options)和属性(Properties)的说明,一般带有–前缀的关键词为option,没有的则为property。

    –show-libraries
    显示需要编译才能使用的库列表

    –build-type=minimal|complete
    –build-type=minimal为默认值,此时在Linux下只编译生成release版的动态链接C运行库(C++标准库)的多线程静态库和动态库。
    –build-type=complete,在Unix/linux下要编译多个变体(debug或release,多线程或单线程,静态库或动态库,静态链接或动态链接C运行库/C++标准库)。不建议全部编译,费时还费空间,提倡按需编译。

    –layout=versioned|tagged|system
    决定需要编译的库名及头文件的地址目录名的生成策略。默认Windows下–layout=versioned,Linux下–layout=system。
    当同时编译多个版本时,最好设置–layout=versioned或–layout=tagged,否则编译多半会失败,原因是有的版本同时编译若不指定命名策略,可能在输出到指定目录的时候造成命名冲突。
    注:–build-type=complete时,不需要设置此属性。但指定variant=debug,release等属性时,须确保–layout=versioned或–layout=tagged。

    –build-dir=DIR
    指定存放编译过程中生成的中间文件,目标文件等其他文件的目录,默认在./bin.v2。

    –with-
    创建和安装指定的库
    –without-
    不对指定的库进行创建和安装,默认创建所有的库

    安装:关键词 install 或 stage
    ./bjam install
    install会安装头文件和库文件到相应指定目录,头文件安装到/usr/local/include下,库文件安装到/usr/local/lib下。具体指定安装目录见./bjam –help。
    ./bjam stage
    stage说起来只能说是收集生成的库文件到一个目录下,通常默认就在./stage下。

    注:
    install 和 stage 貌似不能同时使用,中间会卡住。
    若编译过程中未指定install或stage,则生成的目标库文件只存在于–build-dir所指的目录中,默认为./bin.v2。考虑到此,若无需将头文件和库文件安装,则推荐使用stage关键字。

    下面是属性:
    toolset=toolset
    指定编译器,默认自动检测,安装了多个编译器的时候可以使用此属性。
    variant=debug|release
    指定编译debug或release版本。
    link=static|shared
    指定创建静态库或动态库
    runtime-link=static|shared
    指定创建的库是静态链接还是动态链接到C运行库(或C++标准库),这个选项需依据–link的类型,不同的编译器允许的链接策略不一样,比如在GCC下,在生成动态库(–link=shared)时,就不允许进行静态链接到C运行库(或C++标准库)。
    threading=single|multi
    指定创建多线程或单线程的版本库。

    属性可同时设置,如下两种方式,为了避免名字冲突,建议采取propery=value的格式:
    ./bjam variant=debug,release stage

    ./bjam variant=debug variant=release
    这两种方式都可以。

    最后执行的创建命令:
    ./bjam --with-filesystem --layout=tagged variant=release link=static threading=single stage

  • 相关阅读:
    文档加载完后执行相关事件
    流程步骤(备用)
    浏览器常见内核
    修改!important定义的样式(2)
    样式被!important 后修改的方法
    产生BFC环境的几种方式
    当我们访问一个网址后发生了什么?
    Java并发基础--线程通信
    Java 集合学习--ArrayList
    Java并发基础--线程安全
  • 原文地址:https://www.cnblogs.com/lidabo/p/3805487.html
Copyright © 2011-2022 走看看