C++ Boost 库笔记

                     

贡献者: addis

预备知识 C++ 基础

   Boost 是一些 C++ 库,是 C++ 最常用的库之一。

安装

   Ubuntu/Debian 可以直接 sudo apt install libboost-all-dev 或者指定版本号如 libboost1.65-all-dev。注意这个安装非常大,建议安装某个具体的 lib,如 libboost-filesystem-dev(输入 sudo apt install libboost- 然后按 Tab 就可以显示所有子 lib)。

   但如果想获取最新版本可以直接下载。Boost 绝大部分库都可以是 header only 的。用 tar -xzvf boost_1_76_0.tar.gz 解压以后,在解压文件夹中运行 sudo ./bootstrap.sh(可以添加一些选项,见这里。),然后 sudo ./b2 install [--with-libraries=filesystem] [-j12] 即可(默认需要 gcc 编译器,注意解压和编译时间可能较长)。如果只需要头文件,用 ./b2 headers。然后把 boost 文件夹复制到任何目录,编译时 -I 目录/boost 即可。

   boost 的一些模块需要依赖第三方库,如果没有这些库,b2 就会跳过,最后显示 ..failed updating 54 targets... skipped 10 targets... updated 18065 targets... 然后返回 exit code 1。但这并不影响其他库,详见这里

   头文件默认安装路径是 /usr/local/include/boost/,二进制文件在子目录 /usr/local/include/lib/ 如果没有 sudo 权限也可以指定安装目录,详情参考安装说明

数学物理相关

其他

1. filesystem 3

   一个获取文件大小的程序(同时显示 boost 版本号)

代码 1:test_filesystem3.cpp
#include <iostream>
#include <boost/filesystem.hpp>
using namespace std;
using namespace boost::filesystem;

int main(int argc, char* argv[])
{
	int major_ver = BOOST_VERSION / 100000,
        minor_ver = (BOOST_VERSION / 100) % 1000,
		sub_minor_ver = BOOST_VERSION % 100;
	cout << "boost version: " << major_ver << "." << minor_ver << "."
        << sub_minor_ver << endl;
	cout << "file size: " << file_size(argv[1]) << " bytes" << endl;
	return 0;
}

   编译 g++ test_filesystem3.cpp -o filesize -lboost_system -lboost_filesystem,运行 ./filesize filesize。运行结果:

boost version: 1.65.1
file size: 26800 bytes

                     

© 小时科技 保留一切权利