gpt4 book ai didi

即使使用 -std=c++11 macOSX,C++ 也找不到正则表达式

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:20:33 25 4
gpt4 key购买 nike

所以我尝试在家里的 Mac 上使用 c++ 2011 正则表达式。我正在使用 Eclipse 进行编码,稍微涉足了从终端进行编译。

这是我尝试编译代码时发生的情况:

$ c++ -std=c++11 -o a *.cpp
scanner.cpp:11:10: fatal error: 'regex' file not found
#include <regex> // to use this need to use -std=c++11 flag in compiler
^
1 error generated.

无论我是否使用 -std=c++11 标志,都会发生这种情况。

这是我的 C++ -v:

$ c++ -v
Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.4.0
Thread model: posix

现在我在我的电脑上找到了我想要包含在我的项目中的文件“usr/lib/c++/v1/regex”。但这不在 eclipse 的包含文件中,我不知道如何让我的编译器找到它。

如果我需要这样做才能使它正常工作,我该如何将它添加到包含路径?

更新:

尝试过

$ c++ -I/usr/lib/c++/v1 -o a *.cpp

导致错误

Undefined symbols for architecture x86_64:

后面似乎是对我代码中每一行的引用,例如

  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::compare(char const*) const", referenced from:
std::__1::basic_regex<char, std::__1::regex_traits<char> >::__start_matching_list(bool) in scanner-LSmxM4.o

最佳答案

添加 -stdlib=libc++ 除了 -std=c++11。 libc++ 是支持 C++11 的标准库实现。默认情况下,它使用不支持 C++11 的 libstdc++。整个命令应如下所示:

c++ -std=c++11 -stdlib=libc++ -o output source.cpp

关于即使使用 -std=c++11 macOSX,C++ 也找不到正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18669712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com