3

我只是遇到了一个问题,即所有的东西都在我的 ubuntu 上运行良好。但是,我想让事情在我的 mac 上正常工作,坏事发生了。它显示以下错误

cc1plus: error: unrecognized command line option "-std=c++0x"

我对mac的东西完全陌生,我安装了xcode 4。我想一定有c++0x,但我想知道如何用waf配置它。

非常感谢!!

4

3 回答 3

2

我猜你正在使用 Xcode 提供的 GCC。那将是 GCC 4.2.1,这是一个相当旧的版本,Apple 在可预见的将来不会更新。

您基本上有两个选择:

  • Xcode 除了 GCC 还附带 Clang/LLVM,因此您可以使用 Clang/LLVM 代替。该-std=c++0x选项被 Clang/LLVM 识别,但 C++0x 不像最新版本的 GCC 那样完全支持。LLVM 项目保留一个页面,列出他们当前的 C++0x 支持状态

  • 使用更新版本的 GCC。您可以在本地编译它,也可以通过 Mac OS X 上可用的开源包管理器之一安装它:MacPorts、Fink、Homebrew。我真的不知道他们是否能够构建以及哪些版本的 GCC,因此请先与他们联系。

于 2011-04-19T23:35:19.530 回答
2

由于Xcode在 mac 上带有Clang ,如果您将waf配置为使用Clang,您可以获得c++0x支持。

在您的wscript添加配置中:

def configure( conf ):
    ...
    conf.env.CXXFLAGS = [ '-std=c++0x', '-stdlib=libc++' ]
    conf.env.LINKFLAGS = [ '-std=c++0x', '-stdlib=libc++' ]
    ....

然后运行​​waf为:

CXX=clang++ waf configure
CXX=clang++ waf build
于 2012-05-29T04:29:16.120 回答
1

在 Mac 上,使用clang不会出错。您必须自己构建编译器(例如使用您已经拥有的 gcc-4.2)。它有 -std=c++0x。对它的支持并不完整,但它一直在增长。在 Mac 上,您还可以查看libc++以获得 C++0x 支持(结合 clang)。

于 2011-04-20T00:03:29.130 回答