我可以在 XCode 4 或 OSX Lion 中使用 C++11 的最新功能吗?
可能的重复:
我可以在 Xcode 中使用 C++11 吗?
似乎 xcode 4 包含旧版本的 clang 和 gcc。我可以升级 gcc 或 clang 并将它们与 xcode 4 一起使用吗?我想使用 gcc >= 4.6 或最新的 clang。
我的主要目标是在 mac osx lion 上进行 C++ 编程时能够尽可能多地使用 C++11 中的新功能,因此如果需要的话,放弃 xcode 也是一种选择。
为了实现这一目标,我有哪些选择?
Possible Duplicate:
Can I use C++11 with Xcode?
It seems like xcode 4 contains older versions of clang and gcc. Can i uppgrade gcc or clang and use them with xcode 4? I would like to use gcc >= 4.6 or the latest clang.
My main goal is to be able to have as much of the new features from C++11 available when programming C++ on mac osx lion so ditching xcode is also an option if that is needed.
What are my options to achieve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
Xcode 4.1 中的 clang 版本确实支持一些 C++11 功能,包括可变参数模板和右值引用。 Lion 中还包含 libc++(C++11 标准库的实现)。
请参阅我对 的回答Osx Lion:Xcode 4.1 如何设置 c++0x 项目 了解有关设置的详细信息。
The version of clang in Xcode 4.1 does support some C++11 features, including variadic templates and rvalue references. Also libc++, an implementation of the C++11 standard library is included in Lion.
See my answer to Osx Lion: Xcode 4.1 how do I setup a c++0x project for details on setting this up.
Xcode 4 的每个版本都添加了新的编译器支持功能。 Xcode 4.2 发布后请尝试一下。
Each version of Xcode 4 adds new compiler support features. Please try Xcode 4.2 when it comes out.
Macports 提供 GCC 4.6,但任何 GCC 版本 >= 4.2.1(即最新的 Apple 官方 GCC)都无法直接创建通用二进制文件(32 和 64 位代码在一个文件中)。可能还有其他缺点,但除此之外这应该对您有用。
Macports provides GCC 4.6, but any GCC version >= 4.2.1 (ie the latest official Apple GCC) cannot create universal binaries (32 and 64-bit code in one file) directly. There may be other drawbacks, but otherwise this should work for you.
考虑使用 Clang++ 和 libc++ http://libcxx.llvm.org/
它支持 Mac OS X,大约有 98 % C++0x 功能已完成(原子除外)。
Consider using Clang++ with libc++ http://libcxx.llvm.org/
It supports Mac OS X and has about 98% C++0x features finished except atomics.
事实证明,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。
Turns out that XCode 4.2.0 (the latest version compatible with Snow Leopard) only comes with CLANG 2.0, so no C++ '11 stuff. (Even XCode 4.2.1 still uses CLANG 2.0, so it seems like you need at least XCode 4.2.3 and Lion to use any C++ '11.
我最近花了一些时间安装 Macports GCC 4.6 并修改了一些 Xcode 编译器模板,以便我可以从我的 Xcode 项目中选择和使用它。我最终确实让它工作了,主要缺点是 GCC 4.6 不知道如何处理“块”。如果你打算做任何 COCOA、GUI 的东西,那么这对你来说可能不是一个好的选择(因为一堆 NS 对象头文件包含块,你很早就停止了)。
如果您正在做任何其他类型的项目,您可能可以使用此方法使其工作。
您甚至可以用它来创建具有一定创造力的通用二进制文件。我在这里拥有有关如何完成此操作的所有详细信息:
http://thecoderslife.blogspot.com/2015/07/building-with-gcc-46-and-xcode-4.html
I recently spent a bit of time installing Macports GCC 4.6 and modifying some Xcode compiler templates so I could select and use it from my Xcode projects. I did eventually get it working, the main drawback was that GCC 4.6 doesn't know what to do with "blocks". If you are planning on doing any COCOA, GUI stuff then this probably isn't a good option for you (as a bunch of the NS Object header files contain blocks, you get stopped pretty early).
If you are doing any other kind of project you can probably get it to work with this method.
You can even get it to create universal binaries with some creativity. I have all the gory details on how I accomplished this here:
http://thecoderslife.blogspot.com/2015/07/building-with-gcc-46-and-xcode-4.html