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


致读者: 小时百科一直以来坚持所有内容免费,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 10 元,我们一个星期内就能脱离亏损, 并保证在接下来的一整年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利