c++ 11与Xcode在Mac OS X雪豹
C++11 with Xcode on Mac OS X Snow Leopard
我有一个项目,有时在Windows/Visual Studio 2010上开发,并使用一些c++ 11功能,我需要能够在Mac OS x上开发/构建。当我试图用Xcode构建项目时,我得到了很多关于新的c++ 11功能的错误,并检查了gcc版本,发现它很旧(4.2)。看来苹果试图通过拒绝Xcode 4+在任何其他版本的Mac OS上下载来迫使开发者支付不必要的升级到Lion,因此我只剩下Xcode 3.x。
如何在雪豹上继续使用c++ 11 ?有没有一种方法可以做到这一点,让Xcode作为一个IDE?
2012年2月25日更新:现在有很多功能可供您使用最新的clang。如果你只使用语言特性,也许你可以瞄准10.6。如果你需要库的特性,你需要使用10.7。
考虑到目前(2011年9月24日)Xcode工具集的状态,如果你需要c++11支持,选择其他ide或os是最简单的(IMO)。
xcode使用的GCC分支永远不会支持这些特性。Clang远远落后于WRT c++11的特性(因为它的c++实现仍然很新,而其他编译器已经有几年的时间了)。因此,无论你使用哪个版本的osx, xcode附带的编译器目前都不支持c++11开发的足够功能。
你可以安装一个新版本的GCC并使用另一个ide。
从技术上讲,你也可以为xcode 3做一个插件(官方不支持),调用另一个编译器(例如最近发布的gcc)。那条路线已于2004年关闭。更新显然,它在Xc4中仍然可用;请看下面idljarn的评论对于许多项目,使用MAC引导到Linux或Windows(或使用虚拟化)更容易。
你的最后一个选择是英特尔的编译器,它可以在xcode中使用,并提供了相当数量的c++11支持——在你购买之前尝试一下xcode,看看它是否符合你的需求,与xcode配合良好,并支持你的团队使用的c++11功能。
最后,我不认为他们这样做是为了你的升级钱。他们并没有很好地为多个版本维护xcode——他们只是希望你保持最新最好的版本,除非你需要向后兼容;在这种情况下,你只需停止升级。在gcc许可证变更后,他们投资并协助了clang的开发。是的……Osx一直远远落后于WRT c++11的支持,因为他们决定切换到另一个(非常年轻的)编译器。如果你等待xcode支持c++11,你将不得不等待clang支持它,这可能是相当长的一段时间。我刚刚看到这个,我想更新一下。目前随XCode一起发布的LLVM是版本3(源代码)。当前版本非常好地支持c++ 11。以下是支持的链接:
http://clang.llvm.org/cxx_status.html你可以将其与当前GCC的支持进行比较:
http://gcc.gnu.org/projects/cxx0x.html正如你所看到的,Clang目前在支持新标准的特性方面并没有落后太多,如果有的话。我唯一担心的是缺乏对并发特性的支持,但这是大多数c++ 11编译器的情况,因为支持它的本质。所以我希望这个答案不会太迟,也不会吓到你们。去获取最新版本的Xcode并开始使用吧(如果你还没有这么做;))!
- "ostream &os"有什么用?
- libprotobuf 检查在 Mac OS 上执行程序时失败
- C++读取用户输入而不按回车键(Mac OS X),与Turbo Pascal中的读取键相同
- 如何在 MAC OS c/c++ 中阻止 USB 存储设备
- 编译 Boost 时在 OS X 上的"ld:未知选项:-soname"
- 在 c++ 中检查 Windows OS 服务器版本
- OS X: ld: 找不到 -lstdc++ 的库
- Python os.system() 返回错误值
- Mac os x app bundle 在下载并运行时崩溃,但在终端或更改 Info.plist 时运行良好
- const 如何防止写入特定内存 [Clang, Mac OS]
- 旧C++代码中的目录查找导致 OS X Catalina 10.15 中的目录错误
- 如何在 Mac OS 上安装 boost-mpi 及其对 clang 的依赖关系?
- 在 Mac OS 中将 QT 与 CMAKE 集成
- Homebrew OS X OpenCV - 在另一台Mac上运行时寻找dylib
- 使用C/C++访问OS X密钥链
- 谷歌测试编译错误 Os X:函数式转换从"int"到"internal::FloatingEq2Matcher"的模糊转换<float>
- 从我的2d数组中的一列返回的字符串值被压缩为一个字符串(在Mac os上打开Windows txt文件)
- VK_ERROR_INCOMPATIBLE_DRIVER with Mac OS and Vulkan MoltenVK
- Cmake /make在MAC OS x 10.6雪豹下使用g++4.2
- c++ 11与Xcode在Mac OS X雪豹