c++ - 如何在 gcc 版本之间正确切换?

标签 c++ gcc

我想玩 C++ 2011,所以我需要未发布的 gcc 4.7。我能够成功获取 svn 主干并编译它。

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

现在我应该如何在我系统的默认 gcc 上启用 gcc 4.7?

我已经更改了 CCCXX 变量,我更新了我的 PATH 以指向 gcc 4.7 bin 首先是目录。当我输入 gcc --version 时,我得到 4.7 OK。

但是 gcc 不仅仅是一个可执行文件。 gcc 安装目录中有许多可执行文件。还有默认包含和 std lib c++。

到目前为止,我发现的关于这个主题的每个博客条目/SO 问题都只涉及 gccg++ 可执行文件。

任何人都可以给我一个列表,列出我需要对环境进行的更改才能完全使用 gcc 4.7 吗? 更新 LD_LIBRARY_PATH ?如何让gcc 4.7系统优先包含?还有其他需要考虑的事情吗?

提前致谢。

最佳答案

我认为 g++ 与使用 C++ 的东西几乎纠缠在一起,因为 C 库与系统纠缠在一起! C++ 库类中的任何布局更改都将导致与其他 C++ 程序或库不兼容。因此,我不会替换系统的 C++ 编译器,或者更重要的是,根本不会替换它的标准 C++ 库(除非编译器供应商强烈声明他们保留了与您要替换的版本的二进制兼容性)。

要播放甚至使用不同版本的 g++,使用前缀方法效果很好。所有特定于编译器的工具都使用适当的版本从 g++ 中隐式调用,并且 ar、ld、ranblib 等工具实际上并不依赖于编译器版本。内部使用的重要组件是标准库(头文件和库)和预处理器。当调用一个版本的 g++ 时,它会找出它真正需要的那些。

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

关于c++ - 如何在 gcc 版本之间正确切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8669732/

相关文章:

python - 无法将长整数从嵌入式 Python 返回到 C++

c++ - 如何在没有编译器警告的情况下进行可移植的 64 位算术

c - 调试段错误——程序总是按它应该的方式运行,但总是出现段错误

c - c中for循环问题中的特殊字符读取

c++ - 我遇到了可怕的 LNK2019 错误,不知道从这里开始。

c++ - 向旧的 C++ 意大利式编码器介绍 MVC?

c++ - 在堆栈对齐问题上解决 char 数组

c++ - 基于图 block 的横向卷轴游戏教程?

在c中使用inet_ntop时指针和整数的比较

c - 传递 const 变量时不兼容的指针类型