有没有办法配置waf在mac os中构建c ++程序?

时间:2011-04-19 23:22:34

标签: c++ macos c++11 waf

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

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

我是mac的新手,我安装了xcode 4。 我想必须有c ++ 0x,但我想知道如何用waf配置它。

非常感谢!!

3 个答案:

答案 0 :(得分:2)

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

您基本上有两种选择:

  • 除了GCC之外,Xcode还提供Clang / LLVM,因此您可以使用Clang / LLVM。 Clang / LLVM识别-std=c++0x选项,但C ++ 0x不像最近版本的GCC那样完全支持。 The LLVM project keeps a page listing their current C++0x support status

  • 使用更新版本的GCC。您可以在本地编译它,也可以通过Mac OS X上提供的开源软件包管理器安装它:MacPorts,Fink,Homebrew。我真的不知道他们是否能够建造哪些版本的GCC,所以请先与他们核对。

答案 1 :(得分:2)

由于 Xcode 在Mac上附带 Clang ,如果您配置 waf ,则可以获得 c ++ 0x 支持使用 Clang

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

答案 2 :(得分:1)

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