似乎xcode 4包含旧版本的clang和gcc。我可以升级gcc或clang并将它们与xcode 4一起使用吗?我想使用gcc> = 4.6或最新的clang。
我的主要目标是在mac osx lion上编写C ++时可以使用C ++ 11中的新功能,因此如果需要,也可以选择放弃xcode。
我有什么选择来实现这个目标?
答案 0 :(得分:6)
Xcode 4.1中的clang版本支持一些C ++ 11功能,包括可变参数模板和右值引用。此外,libc ++是C ++ 11标准库的一个实现,包含在Lion中。
有关设置此内容的详细信息,请参阅我对Osx Lion: Xcode 4.1 how do I setup a c++0x project的回答。
答案 1 :(得分:3)
每个版本的Xcode 4都增加了新的编译器支持功能。请在出现时试用Xcode 4.2。
答案 2 :(得分:1)
Macports提供GCC 4.6,但任何GCC版本> = 4.2.1(即最新的官方Apple GCC)都无法直接创建通用二进制文件(一个文件中的32位和64位代码)。可能还有其他缺点,但否则这应该对你有用。
答案 3 :(得分:1)
考虑将Clang ++与libc ++ http://libcxx.llvm.org/
一起使用它支持Mac OS X并且除了原子之外还有大约98%的C ++ 0x功能完成。
答案 4 :(得分:1)
我最近花了一些时间安装Macports GCC 4.6并修改了一些Xcode编译器模板,以便我可以从我的Xcode项目中选择和使用它。我最终得到了它的工作,主要的缺点是GCC 4.6不知道如何处理“块”。如果你打算做任何COCOA,GUI的东西,那么这对你来说可能不是一个好选择(因为一堆NS Object头文件包含块,你很早就停止了)。
如果您正在进行任何其他类型的项目,您可以使用此方法。
你甚至可以通过一些创造力来创建通用二进制文件。我有关于我如何在这里完成这一点的所有血腥细节:
http://thecoderslife.blogspot.com/2015/07/building-with-gcc-46-and-xcode-4.html
答案 5 :(得分:1)
事实证明,XCode 4.2.0(与Snow Leopard兼容的最新版本)仅附带CLANG 2.0,因此没有C ++ '11的东西。 (即使XCode 4.2.1仍然使用CLANG 2.0,所以你似乎至少需要XCode 4.2.3和Lion来使用任何C ++ '11。