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