良许Linux教程网 干货合集 Linux系统编译boost详细教程

Linux系统编译boost详细教程

boost库是一个可移植、提供源代码的c++库,作为标准库的后备,是c++标准化进程的开发引擎之一。下面和大家分享一下Linux系统中编译Boost的具体方法,有需要的小伙伴可以参考一下。

Linux系统编译boost详细教程

Boost简介:

  • boost库是一个可移植、提供源代码的c++库,作为标准库的后备,是c++标准化进程的开发引擎之一。

  • boost库由c++标准委员会库工作组成员发起,其中有些内容有望成为下一代c++标准库内容。 在c++社区中影响甚大,是不折不扣的“准”标准库。

  • boost由于其对跨平台的强调,对标准c++的强调,与编写平台无关。

Linux系统编译Boost具体方法:

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

1.  ./bootstrap.sh  生成bjam

2.  ./bjam –with-filesystem –layout=tagged variant=release link=static threading=single stage 执行的创建命令(不用全部编译)

\3.   ./bjam install 安装

获取boost库

Linux下官方提供了两个压缩版本:boost_1_43_0.tar.bz2boost_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 installinstall会安装头文件和库文件到相应指定目录,头文件安装到/usr/local/include下,库文件安装到/usr/local/lib下。具体指定安装目录见./bjam –help。./bjam stagestage说起来只能说是收集生成的库文件到一个目录下,通常默认就在./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

*安装*

# ./bjam install

将生成的库默认安装到/urs/local/lib目录。

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

137e00002230ad9f26e78-265x300

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部