Linux下Boost安装教程(3种方式)
C++ 是一种大型语言,十分复杂。虽然 C++98 标准已经面世二十余年,C++11 标准也已经出台近十年,但仍然有很多编译器未能实现 C++ 的全部特性。
由于 Boost 大量使用了 C++ 的高级特性,所以并非所有的编译器都能够很好地支持 Boost,并且每个组件对编译器的支持都不尽相同。虽然 Boost 已经针对平台和编译器的兼容性做了大量的工作,但仍有可能出现意外情况。随着 Boost 版本的增长,某些过 老 的编译器(如 VC 6、VC 7、GCC 3)和 CPU 已经不再被支持。
在编写本文时,笔者使用的操作系统是 Ubuntu 18.04.1,编译器使用的是其自带的 GCC 7.4.0,所有代码均在此环境中编译通过。
笔者还在 GitHub 上使用 Travis-CI,基于 Ubuntu 16.04/GCC 5.4.0/Clang 7.0.0 运行通过了所有的代码。
Linux Boost 安装本文演示了三种 Linux Boost 安装方式,大家可以根据自己的实际需求选择。
1. 快捷安装 Boost在 Linux 操作系统下安装 Boost 很容易,最简单省事的方法是在 Boost 解压缩后的目录下直接执行以下命令:
./bootstrap.sh;./b2 install
第一条命令 bootstrap.sh 是编译前的配置工作,第二条命令才开始真正地编译并安装 Boost。
得益于摩尔定律,现在 Boost 库编译所需要的时间和空间都大大缩减了,Boost 库在目前主流级别的 CPU 上编译只需要半小时左右,而以前则需要数个小时。
如果像上面这样不指定额外选项,Boost 将编译 release 版本的库文件,把头文件安装到 /usr/local/include 中,把库文件安装到 /usr/local/lib 中。
2. 完全安装 Boost我们也可以完整编译 Boost,使用 buildtype 选项指定编译类型(如不指定编译类型则默认使用 release 模式),在执行 bootstrap.sh 命令之后执行如下命令:
./b2 buildtype=complete install
这样将开始对 Boost 进行完整编译,安装所有调试版、发行版的静态库和动态库。
3. 定制安装 Boost完整编译 Boost 费时费力,而且在开发过程中这些库并不会全部用到,因此,Boost 允许用户自行选择用户要编译的库。
执行命令:
./b2 show-libraries
可查看所有必须编译后才能使用的库。
在完全编译命令的基础上,使用--with或--without选项可打开或关闭某个库的编译,如:
./b2 with-date_time buildtype=complete install
执行上述命令将编译安装 date_time 库。
笔者使用的安装命令如下:
sudo ./b2 link=static install
b2 和 bootstrap.sh 还有很多其他选项,如指定安装路径、指定 debug 或 release 版等,读者可以使用--help选项或参考 Boost 文档以获得更多的信息。
让我们来编写一个简单的 Boost 应用程序来验证其开发环境。
头文件 boost/version.hpp 里有两个宏,这两个宏定义了当前使用的 Boost 程序库的版本号:
#define BOOST_VERSION 107200 //数字形式的版本号
#define BOOST_LIB_VERSION 1_72 //字符串形式的版本号
头文件 boost/config.hpp 里的三个宏:BOOST_PLATFORM、BOOST_COMPILER 和 BOOST_STDLIB,分别定义了当前的操作系统、编译器和标准库。
下面的代码就是我们与 Boost 的第一次接触(见 GitHub 仓库的 common/test.cpp):
#include boost/version.hpp //包含 Boost 头文件 #include boost/config.hpp //包含 Boost 头文件 int main() cout BOOST_VERSION endl; //Boost 版本号 cout BOOST_LIB_VERSION endl; //Boost 版本号 cout BOOST_PLATFORM endl; //操作系统 cout BOOST_COMPILER endl; //编译器 cout BOOST_STDLIB endl; //标准库 return 0; }
然后使用 g++ 编译:
g++ -o a.out test.cpp -I. #编译test.cpp,生成a.out
程序的运行结果如下:
107200
1_72
linux
GNU C++ version 7.4.0
GNU libstdc++ version 20181206
21390.html
cC++11GCClinux操作系统相关文章
- linux apache2配置_apache2.4安装教程
- Linux下Redis安装使用教程
- 安装 Linux:用APT管理软件包(linux安装apt)
- 深入学习Linux:搭建WinLinux服务器.(服务器搭建linux)
- 深入Linux内核:编写自己的Linux内核(linux写内核)
- 一步步教你在Linux上安装MySQL(linux怎么安装mysql)
- 在Linux上快速安装Oracle数据库(linux上安装oracle)
- 探索Linux环境下的Select命令(linux的select)
- Linux启动Oracle:快速简便的安装指南(linux启动oracle)
- Linux 下 Apache 服务器安装指南(linux安装apache)
- Linux:程序员的最佳选择(linux适合程序员)
- Linux下软件安装指南(linux下怎样安装软件)
- 红帽Linux:从官网轻松安装(linux红帽官网下载)
- Linux操作系统课后答案:探索计算机新世界(linux操作系统课后答案)
- 管理Linux安装:版本管理指南(linux安装版本)
- Linux安装Httpd服务器的指南(linux安装httpd)
- Linux下Telnet安装指南(linux如何安装telnet)
- 学习Linux:自主探索的旅程(怎么自学linux)
- Linux安装NS2简易指南(linux安装ns2)
- Linux系统安全:从优化到升级(linux系统安全优化)
- Linux环境下脚本执行技巧(linux执行如何脚本)
- Linux系统镜像ISO:最新安装引导(linux镜像iso)
- Linux如何生成随机文件(linux生成随机文件)
- 25字中文文章标题: 一文了解Linux小企鹅的历史及发展(linux小企鹅)
- Linux下查找安装位置的技巧(linux查找安装位置)
- Linux系统文件的时间戳更新(linux文件时间戳)
- Linux安装新硬盘——更新更安全(linux 换硬盘)
- 安装Flex在Linux系统上的指南(安装flex linux)