macos下编译使用boost库
有两种方法:
(1)采用macport直接安装库中已经编译好的,但是网速慢的时候真的是太慢了
(2)直接下载源码包自己编译,下面记录采用这种方式的基本步骤
- 下载boost的源码 http://sourceforge.net/projects/boost/?source=dlp
- 解压
- boost库都是源码,而且在头文件中大部分的代码都已经实现了,因此可以直接链接头文件进行就编译就行了,也就是不需要提前编译成库就可以使用,当然除了下面几个库之外
- 单独编译一个库也非常的简单,下面以regex库来举例说明步骤
- ./bootstrap.sh --prefix=/opt/local --with-libraries=regex
- ./bjam install
- 在/opt/local的lib目录和include目录就会看到相应的已经编译好的boost regex库了
- 写一个简单的程序测试一下
- 用vi输入下面的代码,文件名为reg.cpp
- 编译 g++ reg.cpp -I /opt/local/include -o test /opt/local/lib/libboost_regex.a
-
#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; } }
- 完毕,有一些特殊的编译选项可以查看相应的说明文档