我对C++11还不熟悉。我尝试过:
clang++ -std=c++11 -stdlib=libc++ *.cc
它可以工作,但我的问题是:
- 有没有办法将这些标志设置为clang++的默认值?
- 如何更新g++ 4.2到支持C++11的版本?
- 您认为在Mac上编译C++11代码的最佳方式是什么?
谢谢。
Brett已经描述了如何使用MacPorts安装GCC。以下是使用Homebrew的方法,它自称(理所当然!)是MacPorts的现代替代品:
brew tap homebrew/versions
brew install --enable-cxx gcc48
在IDE之外(例如在shell中),我通常将变量CXX
设置为:"clang -std=c++11 -stdlib=libc++"
,存储在.profile
/.tcshrc
/等文件中,因为大多数configure脚本也会使用这个变量。在命令行上,我可能会使用:$CXX -c foo.cc
MacPorts的gcc-4.8.1效果很好:"[sudo] port install gcc48 [-universal]"
"[sudo] port select --set gcc gcc48"
将使这成为默认的gcc
,g++
等。
不要尝试更新或修改系统工具,比如随Xcode一起提供的旧版gcc-4.2/llvm混合工具。
我不知道你在第三部分问题中所说的“最佳”方式是什么意思,但由于苹果的支持(他们雇用了LLVM的主要作者)和其他项目(如FreeBSD),clang将继续改进。它已经比gcc快得多,有更好的错误消息/诊断(特别是对于C++和模板),并且具有模块化的架构。对于OS X,它是明显的选择。
像大多数苹果开发者一样,在Xcode的构建设置中完成所有操作。Xcode在许多方面都简化了生活。