贡献者: addis
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 权限也可以指定安装目录,详情参考安装说明。
一个获取文件大小的程序(同时显示 boost 版本号)
#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
boost::filesystem::path
 
 
 
 
 
 
 
 
 
 
 
友情链接: 超理论坛 | ©小时科技 保留一切权利