我正在 OSX Mountain Lion 上使用 Eclipse Juno,并且想要使用 std::regex,我知道这是 C++11 独有的功能。当我 #include <regex>
IDE 说它不存在。也许最好注意到 header regex.h 存在于/usr/include/中,尽管我在/usr/lib/或/usr/local/lib/中没有看到它的特定库,但我不知道这是否是相关的。这只是一个有趣的副项目,所以我没有使用定制的构建系统,只是 Eclipse 中的常规 C++ 项目。
在修改构建过程(除了设置包含路径、库等)方面,我并没有真正的经验,特别是当像 Eclipse 这样的 IDE 驱动它时,但我的假设是编译器和链接器( GCC G++) 没有为 C++11 配置,尽管我尝试了 SO 和 Eclipse 论坛的各种建议,例如添加 -std=c++11,但我只是不断看到输出说它们是无法识别的参数.
我确信有人已经处理过这个问题。有人可以帮忙吗?提前致谢。
最佳答案
在 Mac 上,您必须使用该标志:
-stdlib=libc++
即便如此,如果您刚刚使用 Xcode 更新,我相信通常只有 clang 更新得足够(所以使用 clang 而不是 gcc)。您还应该确保您的 Xcode 命令行工具已更新,因为我猜测这是 eclipse 正在使用的编译器。
关于regex - 为什么 Eclipse 在 Mac OSX 上找不到正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17901572/