为啥 Eclipse 在 Mac OSX 上找不到正则表达式?

Posted

技术标签:

【中文标题】为啥 Eclipse 在 Mac OSX 上找不到正则表达式?【英文标题】:Why can't Eclipse find regex on Mac OSX?为什么 Eclipse 在 Mac OSX 上找不到正则表达式? 【发布时间】:2013-07-27 19:21:00 【问题描述】:

我在 OSX Mountain Lion 上使用 Eclipse Juno,并想使用 std::regex,我知道这是 C++11 独有的功能。当我#include <regex> IDE 说它不存在时。也许注意到头文件 regex.h 存在 /usr/include/ 是件好事,尽管我在 /usr/lib/ 或 /usr/local/lib/ 中没有看到它的特定库,尽管我不知道那是不是相关的。这只是一个有趣的副项目,所以我没有使用自定义构建系统,只是 Eclipse 中的常规 C++ 项目。

在修改构建过程(除了设置包含路径、库等)方面,我并没有真正的经验,尤其是当像 Eclipse 这样的 IDE 驱动它时,但我的假设是编译器和链接器( GCC G++) 没有为 C++11 配置,尽管我尝试了 SO 和 Eclipse 论坛的各种建议,比如添加 -std=c++11,但我只是一直看到输出说它们是无法识别的参数.

我敢肯定有人已经处理过这个问题。任何人都可以帮忙吗?提前致谢。

【问题讨论】:

我的回答对你有帮助吗,我有一段时间遇到同样的问题 【参考方案1】:

在 mac 上,您必须使用标志:-stdlib=libc++ 即便如此,如果您刚刚使用 Xcode 更新,我相信通常只有 clang 更新足够(所以使用 clang 而不是 gcc)。您还应该确保您的 Xcode 命令行工具已更新,因为我猜那是 eclipse 正在使用的编译器。

【讨论】:

您好,很抱歉没有尽快检查您的答案。我不是 XCode 的普通用户,但它是我最初用来安装 gcc 以构建其他项目的。我已经检查过,命令行工具也是最新的。至于使用 clang 而不是 gcc,我不确定如何在 Eclipse 中更改它(工具链编辑器不显示 clang)。由于 clang 与 gcc 兼容,我假设 Eclipse 认为它以某种方式使用 gcc 而不是 clang。我现在已经解决了一些使用子字符串的正则表达式的需要。但在未来,这会有所帮助。 @JoeyCarson 请记住,如果你更新了 gcc 的正则表达式实现,它甚至不起作用,所以如果你不知道如何使用 clang,正则表达式将无法工作 我注意到我在 /usr/bin 中安装的 gcc 确实是 gcc 4.2,根据文档,它不支持 cpp 11,甚至不支持实验性支持。我使用 brew 安装了 gcc 4.7,但现在看来我有两个 gcc 安装。

以上是关于为啥 Eclipse 在 Mac OSX 上找不到正则表达式?的主要内容,如果未能解决你的问题,请参考以下文章

在此服务器Apache mac osx 10.10上找不到请求的URL /

为啥我在 Eclipse 上找不到适用于 Eclipse 的 Android SDK?

Eclipse mac osx:启动失败,找不到二进制文件

Mac下Eclipse读取不到环境变量

Mac OSX在eclipse里运行Go test 的一些小坑

在 mac osx 上使用 Eclipse 无法检测到小米 mi4