2011-10-02 82 views
8

Apple gcc和GNU gcc有什么区别?苹果gcc是标准超集吗?更新Apple g ++/gcc

在我的OSX的克++版本信息表示:

$ g++ --version 
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00) 

一些的C++ 11的最新功能是在4.3的gcc/4.4按照this。有没有我可以升级到的Apple gcc的更新版本。如果是这样,我该怎么办?我有Xcode 4.1

回答

6

那么,对于第一部分,Apple在这种情况下使用LLVM后端g ++作为默认g ++。 Apple还为LLVM安装了命名为clang和clang ++的前端。然而,绝对没有什么能阻止你安装GCC的新分支。 MacPorts拥有4.6以下的所有软件包。如果您在gcc手册页中查找“APPLE ONLY”,则可以看到苹果分支机构以外不可用的内容。

6

除了已经提到的llvm-gccclang,在Xcode 4.1中还有一个苹果提供的gcc-4.2(没有LLVM后端)/usr/bin/gcc-4.2。但是请勿覆盖/usr/bin中Apple提供的版本。所有这三个功能都支持功能的超集,包括在vanilla GNU发行版中找不到的多支持支持和多支持abi支持,许多第三方包依赖于OS X中的这些功能。如果您通过MacPorts或从源安装某些功能,它将安装到不同的路径,如/opt/local/bin/usr/local/bin。使用PATH或环境变量来管理您使用的编译器。

2

您可以使用macport来安装较新的版本。你可以下载它here

- Go to the build setting of your project 
- Click on the add build setting button 
- Choose user-defined setting 
- Name it CC 
- In the value field, put the path of the gcc version installed by macport. 
1

有一两件事肯定是存在于苹果的GCC分支,但不是在GNU GCC是blocks:一旦你已经安装了macport GCC,您可以通过添加一个用户定义的设置到您的构建和Xcode使用它。