首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mac上从llvm-g++-4.2升级到g++-4.7的正确方法

在Mac上从llvm-g++-4.2升级到g++-4.7的正确方法
EN

Stack Overflow用户
提问于 2012-05-28 15:01:05
回答 1查看 7.5K关注 0票数 5

我已经安装了命令行工具Lion10.7.3。我想用C++11做实验,所以我用自制软件安装GCC 4.7作为这里文档。

现在如何将/usr/bin/g++升级为由Homebrew安装的?就像把它连在一起一样简单吗?我只想再查一遍确认一下。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-04-25 01:57:39

首先,您确定需要g++ 4.7吗?正如您从C++11实现状态页面中看到的那样,最近版本的CL昂也支持大多数C++11。当然,g++处理的东西和clang仍然不能处理,但也有一些clang支持的东西和g++不支持的东西。更重要的是,您已经有了最新版本的clang,它来自苹果,已经配置好并准备就绪,作为默认编译器。另外,g++在4.2后不支持Mac扩展,比如-arch,这意味着您不能使用它构建大量第三方软件(因为大多数配置脚本假设如果您在Mac上,编译器就会支持Mac扩展)。

但是如果你想要g++ 4.7,你可以做到。只是不要试图用不同的版本替换/usr/bin/g++。永远不要用非苹果产品取代/usr/bin (或/System)中的任何东西,除非在一些非常罕见的情况下(当你从一个知道他们在说什么的人那里得到强烈的安慰时)。

更好的做法是并行安装另一个编译器。只需让Homebrew安装它最喜欢的方式(因此它安装在一些前缀中,比如/usr/local/Cellar/gcc/4.7,然后将所有适当的内容都链接到/usr/local/bin等),然后以这种方式使用。

编译代码时,不要编写g++,而是编写/usr/local/bin/g++g++-4.7

如果对此感到厌倦,请将/usr/local/bin放在/usr/bin的路径上,或者创建一个shell别名,或者将其放入环境变量CXX中,编写$CXX而不是g++

如果您使用的是GUI IDE,您应该能够通过在某个地方设置它的路径来将其配置为使用您的编译器。(除非您使用的是Xcode,否则只能将Xcode配置为使用经过苹果测试的编译器。)

这是您试验自己的代码所需的全部内容。如果您想用这个编译器编译第三方应用程序,这可能要复杂一些。实际上,您并不经常编译每个源文件并将结果链接到一起;您只需执行configure && make,让它们为您完成繁重的工作。

幸运的是,大多数包都将尊重标准环境变量,特别是用于指定默认C++编译器的C++和用于默认C编译器的CC。(这就是为什么我在上面提到了CXX这个名字。)

请记住,g++ 4.7不支持Mac扩展,所以如果您不准备调试一堆基于autoconf的配置脚本,抱怨您的编译器无法生成代码,因为它假设它可以在Mac上向任何编译器抛出-arch x86_64,那么请不要这样做。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10786699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档