zoukankan      html  css  js  c++  java
  • 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. 完毕,有一些特殊的编译选项可以查看相应的说明文档
  • 相关阅读:
    51Nod1528 加号分配
    51Nod1679 连通率
    51Nod1679 连通率
    51Nod1426 沙拉酱括号
    51Nod1426 沙拉酱括号
    51Nod1678 lky与gcd
    51Nod1556 计算
    c学习第2天
    Stopwatch秒表的使用
    数据从.txt文件中导入数据库
  • 原文地址:https://www.cnblogs.com/wordadobe/p/2892108.html
Copyright © 2011-2022 走看看