全部博文(211)
分类: 系统运维
2019-04-02 09:40:37
boost向来有准标准库之称,很多新特性例如智能指针等都是先在boost中实现,后来被吸收到标准库之中。而且boost实现了日志、算法、日期、地理、数学、线程协程等各种实用工具,所以如果要学习C++,boost是必须要学习的一个东西。
下面记录在下编译安装boost1.69库的过程步骤,希望对大家有用。
Linux版本:Ubuntu 18.04 LTS
Boost版本:1.69.0
linuxidc@linuxidc:~/公社 -$ sudo apt-get install libbz2-dev [sudo] linuxidc 的密码: 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 将会同时安装下列软件: bzip2-doc 下列【新】软件包将被安装: bzip2-doc libbz2-dev 升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 218 个软件包未被升级。 需要下载 324 kB 的归档。 解压缩后会消耗 513 kB 的额外空间。 您希望继续执行吗? [Y/n] Y
linuxidc@linuxidc:~/公社 -$ sudo apt-get install libicu-dev 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 将会同时安装下列软件: gir1.2-harfbuzz-0.0 icu-devtools libglib2.0-dev libglib2.0-dev-bin libgraphite2-dev libharfbuzz-dev libharfbuzz-gobject0 libicu-le-hb-dev libicu-le-hb0 libiculx60 libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 建议安装: libglib2.0-doc libgraphite2-utils icu-doc 下列【新】软件包将被安装: gir1.2-harfbuzz-0.0 icu-devtools libglib2.0-dev libglib2.0-dev-bin libgraphite2-dev libharfbuzz-dev libharfbuzz-gobject0 libicu-dev libicu-le-hb-dev libicu-le-hb0 libiculx60 libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 升级了 0 个软件包,新安装了 15 个软件包,要卸载 0 个软件包,有 218 个软件包未被升级。 需要下载 11.8 MB 的归档。 解压缩后会消耗 57.4 MB 的额外空间。 您希望继续执行吗? [Y/n] Y
linuxidc@linuxidc:~/公社 -$ sudo apt-get install Python-dev
linuxidc@linuxidc:~/公社 -$ sudo apt-get install libbz2-dev
此处我下载的是 boost1.69,0
解压缩到一个目录
里面有个bootstrap.sh的脚本文件,运行这个脚本
运行脚本:
linuxidc@linuxidc:~/公社 -/boost_1_69_0$ ./bootstrap.sh Building Boost.Build engine with toolset gcc... tools/build/src/engine/bin.linuxx86_64/b2 Detecting Python version... 2.7 Detecting Python root... /usr Unicode/ICU support for Boost.Regex?... /usr 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:
根据上图提示,进行编译操作。
linuxidc@linuxidc:~/公社 -/boost_1_69_0$ ./b2 Performing configuration checks - default address-model : 64-bit - default architecture : x86 Building the Boost C++ Libraries. - C++11 mutex : yes - lockfree boost::atomic_flag : yes - Boost.Config Feature Check: cxx11_auto_declarations : yes - Boost.Config Feature Check: cxx11_constexpr : yes - Boost.Config Feature Check: cxx11_defaulted_functions : yes - Boost.Config Feature Check: cxx11_final : yes - Boost.Config Feature Check: cxx11_hdr_mutex : yes - Boost.Config Feature Check: cxx11_hdr_tuple : yes - Boost.Config Feature Check: cxx11_lambdas : yes
编译成功后的截图如下:
sudo ./b2 --prefix=/usr/local/boost install
安装好之后截图:
gedit /etc/environment
CPLUS_INCLUDE_PATH=/usr/local/boost/include LIBRARY_PATH=/usr/local/boost/lib
添加完成后,进行保存操作。
(1)代码编写。输入命令:
linuxidc@linuxidc:~/公社 -/boost_1_69_0$ gedit linuxidc.com.Boost.cpp
打开编辑器,输入以下代码并保存:
#include#include using namespace std; int main() { boost::gregorian::date d(boost::gregorian::day_clock::local_day()); cout << d.year()<<"." << d.month()<<"." < (2)代码 编译。输入命令:
linuxidc@linuxidc:~/公社 -/boost_1_69_0$ g++ -I /usr/local/boost/include -L /usr/local/boost/lib linuxidc.com.Boost.cpp -o linuxidc.com(3)执行程序。输入命令:
linuxidc@linuxidc:~/公社 -/boost_1_69_0$ ./linuxidc.com 2019.Mar.20截图如下
OK,搞定。