如何在gcc版本之间正确切换? 我想玩C++ 2011,所以我需要未发布的GCC 4.7。我成功地获得了svn主干并编译了它

如何在gcc版本之间正确切换? 我想玩C++ 2011,所以我需要未发布的GCC 4.7。我成功地获得了svn主干并编译了它,c++,gcc,C++,Gcc,为了安全起见,我希望保留系统的默认gcc,因此我使用--prefix配置了gcc4.7,并将其安装在非标准位置 现在,我应该如何在系统的默认gcc上启用GCC4.7 我已经更改了CC和CXX变量,首先更新了GCC4.7bin目录上的路径。当我输入gcc--version时,我得到了4.7版本 但gcc不仅仅是一个可执行文件。gcc安装目录中有许多可执行文件。也有默认的包含和STD LIB C++。 到目前为止,我在这个主题上发现的每个博客条目/问题都只涉及gcc和g++可执行文件 有人能给我一个

为了安全起见,我希望保留系统的默认gcc,因此我使用--prefix配置了gcc4.7,并将其安装在非标准位置

现在,我应该如何在系统的默认gcc上启用GCC4.7

我已经更改了CC和CXX变量,首先更新了GCC4.7bin目录上的路径。当我输入gcc--version时,我得到了4.7版本

但gcc不仅仅是一个可执行文件。gcc安装目录中有许多可执行文件。也有默认的包含和STD LIB C++。 到目前为止,我在这个主题上发现的每个博客条目/问题都只涉及gcc和g++可执行文件

有人能给我一个列表,列出我需要对环境做哪些更改才能充分使用GCC4.7吗? 是否更新LD_库路径?如何优先考虑gcc 4.7系统包括的内容?还有其他需要考虑的事情吗?<
提前谢谢。

请看。我使用程序后缀来区分不同的GCC版本。为此,添加,例如,<代码> -PROSTAN后缀=-4.7(/Cord<)到您的<代码> /配置> <代码>调用。< /P> < P>我认为G++与C++的东西几乎纠缠在一起,因为C库与系统纠缠在一起!C++库类中的任何布局更改都会导致与其他C++程序或库的不兼容。因此,我不会替换系统的C++编译器,更重要的是,它不会取代它的标准C++库(除非编译器编译器强烈地声称它们保留了与正在替换的版本的二进制兼容性)。 要玩或甚至使用不同版本的g++,使用前缀方法很好。所有特定于编译器的工具都是使用适当的版本从g++中隐式调用的,而ar、ld、ranblib等工具实际上并不依赖于编译器的版本。内部使用的重要组件是标准库(头部和库)和预处理器。当调用一个版本的g++时,它会找出它真正需要的是哪一个


顺便说一句,当你想玩C++2011时,你也可以看看clang。

最简单的答案是:没有;它只是工作。:)


GCC首先相对于自身找到它需要的东西,其次在它配置的“前缀”中找到它需要的东西,最后在标准位置找到它需要的东西。通过这种方式,只要您将其全部重新定位,将其重新定位到您喜欢的任何位置都是完全安全的,但请注意,如果安装不完整,则回退行为可能会隐藏中断。

在GCC常见问题解答中回答:我在使用GCC 4.7编译后遇到奇怪的错误。这就是为什么我要询问我可能错过的信息。因此,在我的问题中,“适当地”谢谢,我试过叮当声,但它没能在我的代码中发现导致崩溃的错误。gcc立即发现了它,并出现了一个概述问题的编译错误。从那时起我就坚持gcc。在clang和gcc之间切换要比在两个gcc之间切换容易。好的,所以我遇到的问题很可能来自其他方面。我会再试一次。