最新超详细Boost安装使用——Linux
Boost详细介绍网址:Boost详细介绍
笔者下载的版本:https://dl.bintray.com/boostorg/release/1.72.0/source/boost_1_72_0.tar.gz
Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。
安装步骤:
下载boost源码
wget https://dl.bintray.com/boostorg/release/1.72.0/source/boost_1_72_0.tar.gz
#压缩包有点大可能要比较久,笔者下载的时候是121M
解压到一个目录
#到你的下载目录里
tar -zxvf boost_1_72_0.tar.gz
#解压完安装包可以删除 毕竟有点大 rm boost_1_72_0.tar.gz
正常编译:
cd boost_1_72_0
./bootstrap.sh --with-libraries=all --with-toolset=gcc##--with-libraries指定编译哪些boost库,all的话就是全部编译,只想编译部分库的话就把库的名称写上,之间用 , 号分隔即可,可指定的库下面介绍。
##--with-toolset指定编译时使用哪种编译器,Linux下使用gcc即可,如果系统中安装了多个版本的gcc,在这里可以指定gcc的版本,比如--with-toolset=gcc-4.4
可指定的库有:
库名 说明
atomic
chrono
context
coroutine
date_time
exception
filesystem
graph 图组件和算法
graph_parallel
iostreams
locale
log
math
mpi 用模板实现的元编程框架
program_options
python 把C++类和函数映射到Python之中
random
regex 正则表达式库
serialization
signals
system
test
thread 可移植的C++多线程库
timer
wave
在之前有介绍
命令执行完后看到如下所示即为成功:
Building Boost.Build engine with toolset gcc... tools/build/src/engine/bin.linuxx86_64/b2
Detecting Python version... 2.6
Detecting Python root... /usr
Unicode/ICU support for Boost.Regex?... not found.
Generating Boost.Build configuration in project-config.jam...Bootstrapping is done. To build, run:
./b2
To adjust configuration, edit 'project-config.jam'.
Further information:- Command line help:
./b2 --help- Getting started guide:
http://www.boost.org/more/getting_started/unix-variants.html- Boost.Build documentation:
http://www.boost.org/build/doc/html/index.html
安装boost库
./b2 install --prefix=/usr
##--prefix:boost库的安装目录,不加此参数,默认安装在/usr/local目录下
刷新链接库
如果安装后想马上使用boost库进行编译,还需要执行一下这个命令:
ldconfig
#ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。
# 如果编译好程序后,在运行时提示无法加载某个库文件,则把/usr/local/lib下的所有boost的库文件mv到/usr/lib目录下就可以了。
编译程序:
g++ main.cpp -g -o main -lboost_thread
如果boost库的安装位置不是在系统目录下,则还需要在编译时加上-I和-L指定boost头文件和库文件的位置
编译时如果遇到图中所示错误:
执行:
LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH export LD_LIBRARY_PATH
export LD_LIBRARY_PATH
对你有帮助的话,不防关注、收藏、点赞。每一次鼓励让我充满创作的动力