• macos下编译使用boost库


    有两种方法:

    (1)采用macport直接安装库中已经编译好的,但是网速慢的时候真的是太慢了

    (2)直接下载源码包自己编译,下面记录采用这种方式的基本步骤

    1. 下载boost的源码 http://sourceforge.net/projects/boost/?source=dlp
    2. 解压
    3. boost库都是源码,而且在头文件中大部分的代码都已经实现了,因此可以直接链接头文件进行就编译就行了,也就是不需要提前编译成库就可以使用,当然除了下面几个库之外
      1. Boost.Filesystem

      2. Boost.IOStreams
      3. Boost.ProgramOptions
      4. Boost.Python 
      5. Boost.Regex
      6. Boost.Serialization
      7. Boost.Signals
      8. Boost.Thread
      9. Boost.Wave
    4. 单独编译一个库也非常的简单,下面以regex库来举例说明步骤
      1. ./bootstrap.sh --prefix=/opt/local --with-libraries=regex
      2. ./bjam install
      3. 在/opt/local的lib目录和include目录就会看到相应的已经编译好的boost regex库了
      4. 写一个简单的程序测试一下
        1. 用vi输入下面的代码,文件名为reg.cpp
        2. 编译 g++ reg.cpp -I /opt/local/include -o test /opt/local/lib/libboost_regex.a
        3. #include <boost/regex.hpp>
          #include <iostream>
          #include <string>
          
          int main()
          {
              std::string line;
              boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );
          
              while (std::cin)
              {
                  std::getline(std::cin, line);
                  boost::smatch matches;
                  if (boost::regex_match(line, matches, pat))
                      std::cout << matches[2] << std::endl;
              }
          }
    5. 完毕,有一些特殊的编译选项可以查看相应的说明文档
  • 相关阅读:
    find the most comfortable road
    Rank of Tetris
    Segment set
    Codeforces Round #380 (Div. 2)D. Sea Battle
    A Bug's Life
    Is It A Tree?
    N皇后问题
    符号三角形
    2016 ICPC总结
    Sudoku Killer
  • 原文地址:https://www.cnblogs.com/wordadobe/p/2892108.html
Copyright © 2020-2023  润新知