[关闭]
@azmddy 2018-11-02T11:55:11.000000Z 字数 940 阅读 385

Boost使用(Linux)

Linux C++ Boost


Boost被称为C++的准标准库,这里简单的记录了如何linux平台上使用Boost.

Boost下载地址:https://www.boost.org/users/download/

image_1cr4plgcc1hgah5u1ukd13vc1qm39.png-310.9kB

选择一个下载,然后解压;

下载了一个库,大家第一反应应该就是如何构建它。
但大多数Boost库只是头文件,它们完全由包含模板和内联函数的头文件组成,并且在链接的时候不需要单独编译的库的二进制文件或特殊处理。

如果使用到了单独编译的Boost库,那么就通过构建和安装Boost库了。

  1. $ cd boost_1_68_0
  2. # 使用root权限
  3. $ sudo su
  4. ./bootstrap.sh
  5. ./b2
  6. # 将库文件路径添加到环境变量(root)
  7. # 库文件路径:/home/azmddy/Downloads/boost_1_68_0/stage/lib
  8. vim /etc/ld.so.conf.d/boost.conf
  9. sudo ldconfig

下面提供两个官方实例:

  1. // 不需要链接库参与编译的
  2. #include <boost/lambda/lambda.hpp>
  3. #include <iostream>
  4. #include <iterator>
  5. #include <algorithm>
  6. int main()
  7. {
  8. using namespace boost::lambda;
  9. typedef std::istream_iterator<int> in;
  10. std::for_each(
  11. in(std::cin), in(), std::cout << (_1 * 3) << " " );
  12. }
  1. // 需要链接库参与编译的
  2. #include <boost/regex.hpp>
  3. #include <iostream>
  4. #include <string>
  5. int main()
  6. {
  7. std::string line;
  8. boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );
  9. while (std::cin)
  10. {
  11. std::getline(std::cin, line);
  12. boost::smatch matches;
  13. if (boost::regex_match(line, matches, pat))
  14. std::cout << matches[2] << std::endl;
  15. }
  16. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注