linux下编译boost

编译安装

编译bjam:使用下面的命令创建boost自己的编译工具bjam(目的是保证Boost在任何平台上都能用bjam编译),类似于GNU Make。

./bootstrap.sh

./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] [install|stage]

常用选项(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下。


下面是属性:
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 variant=release


最后执行的创建命令(完整编译):
./bjam --build-type=complete stage

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。