3

我确信这个问题已经以许多不同的形式被问过(提前道歉)-我使用的是 Xcode 4.5.2

非常简单的无操作终端应用程序如下...

#include <boost/regex.hpp>
int main(int argc, const char * argv[])
{
    boost::regex regday_pattern("\\");
    return 0;
}

欣赏 boost 中的正则表达式需要一个库,而不仅仅是一个 boost 标头。对于 xcode 和下面的 unix 环境相对较新,我对如何需要我的设置有点困惑,这样我就不会收到以下链接错误...

架构 x86_64 的未定义符号:“boost::basic_regex

对此问题的任何帮助将不胜感激 - 我已经阅读了几个对类似问题的回复,并且无法将这些回复与我的情况联系起来。TIA

4

1 回答 1

0

您可能会遇到链接器错误,因为您实际上并未构建 Boost.Regex 库。

请遵循 Boost 文档中的构建说明

在 shell 中发出以下命令(不要键入 $;它代表 shell 的提示符):

$ cd path/to/boost_1_53_0 
$ ./bootstrap.sh --help 

选择您的配置选项并再次调用 ./bootstrap.sh 而不使用 --help 选项。除非您在系统的 /usr/local/ 目录中具有写入权限,否则您可能至少希望使用

$ ./bootstrap.sh --prefix=path/to/installation/prefix 

安装在其他地方。此外,考虑使用--show-libraries--with-libraries=library-name-list选项来限制构建所有内容时将经历的长时间等待。最后,

$ ./b2 install 

会将 Boost 二进制文件保留在lib/安装前缀的子目录中。您还将include/ subdirectory在安装前缀中找到 Boost 标头的副本,因此您以后可以使用该目录作为#include路径来代替 Boost 根目录。

最后,确保您可以构建和运行 Boost 文档中的Regex 示例

于 2013-05-01T09:00:10.667 回答