正在更新Apple g++/gcc

Updating Apple g++/gcc

本文关键字:gcc g++ Apple 更新      更新时间:2023-10-16

Apple gcc和GNU gcc有什么区别?Apple 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

对于第一部分,苹果在这个例子中使用的是g++的LLVM后端作为默认的g++。苹果还为LLVM安装了名为clang和clang++的前端。但是,绝对没有什么可以阻止您安装新的GCC分支;MacPorts有支持4.6以下所有版本的软件包。如果你在gcc手册页中查找"APPLE ONLY",你可以看到在APPLE分支之外无法使用的内容。

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

您可以使用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.

在Apple GCC分支中肯定存在,但在GNU GCC中没有的是block。