正在更新Apple g++/gcc
Updating Apple g++/gcc
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-gcc
和clang
,还有一个苹果提供的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。
相关文章:
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 奇怪的结构&GCC&clang(void*返回类型)
- GCC本机矩阵运算库
- PowerPC ppc64le上的Gcc Woverloaded虚拟错误
- gcc和c++17的过载解析失败
- 数据成员SFINAE的C++17测试:gcc vs clang
- GCC对可能有效的代码抛出init list生存期警告
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 使用 GCC 卸载的 OpenMP 卸载失败,并出现"Ptx assembly aborted due to errors"
- 为什么与常规GCC不同,即使有"学究性错误",MinGW-GCC也能容忍丢失的返回类型
- 使用gcc从静态链接的文件中查找可选符号
- 普通环路未使用gcc 4.8.5自动矢量化
- 有了gcc,是否可以链接库,但前提是它存在
- 在clang++预处理器中确定gcc工具链版本
- 为什么 gcc 编译这个而 msvc 没有
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- 我可以检测和更改 gcc/g++ 中结构的当前数据对齐设置吗?
- gcc和clang在表达式是否为常量求值的问题上存在分歧
- 如何使用Clang/GCC在Mac上为C/C++设置VSCode
- 一位朋友将模板函数缩写为clang和gcc