更新苹果的g++/gcc

8
苹果GCC和GNU GCC有什么区别?苹果GCC是否是标准GCC的超集?
我在我的OSX中的g++版本信息如下:
$ 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的一些最新功能在gcc 4.3/4.4中已经实现,详情参见这个链接。是否有更高版本的Apple gcc可以升级?如果有,如何升级呢?我使用的是Xcode 4.1。

4个回答

6

首先,对于这部分内容,苹果公司在此案例中使用LLVM后端作为默认的g++。苹果还安装了以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中的苹果版本。这三种编译器都支持多架构和多ABI支持的功能,这些功能不在基本的GNU发行版中,并且许多第三方软件包都依赖这些功能在OS X上工作。如果您通过MacPorts或源代码安装了某些内容,它将被安装到不同的路径,如/opt/local/bin/usr/local/bin。使用PATH或环境变量来管理使用哪��编译器。

2

您可以使用Macport安装更新的版本。您可以在此处下载它。一旦您使用Macport安装了gcc,您可以通过将用户定义设置添加到构建中来与xcode一起使用:

- 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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接