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. 完毕,有一些特殊的编译选项可以查看相应的说明文档
posted @ 2013-02-04 17:53  编程是一个好职业  阅读(837)  评论(0编辑  收藏  举报