多个版本的 gcc/g++ 会影响

多个版本的 gcc/g++ 会影响

我有一个相当简单的问题,但我却无法找到答案。

在我的工作场所,有一个安装了 ubuntu 12.04 的 CI 服务器,该服务器使用编译器的默认 c/c++ 二进制文件 ( 4.6.3 ) 版本。现在有一个项目需要新版本的编译器 (包括 c++11 的编译器)。

3个问题:

  1. 安装 gcc-4.8 和 g++4.8 是否会破坏/更改现有 4.6.3 版本使用的内容?(也许存在可以被覆盖的共享库依赖项?)

  2. 是否可以安全地假设 gcc-4.8 和 gcc-4.8 不会导致构建(依赖于 4.6.3)通过的情况,但实际上构建代码行为会发生变化?(可能是由于优化方式不同?)

  3. 最重要的是,是否可以在系统上安装多个版本的编译器而不会破坏以前的版本?

请耐心等待,因为 c/c++ 不是我曾经使用过的编程语言。

答案1

  1. 安装 gcc-4.8 和 g++4.8 会破坏/更改现有 4.6.3 版本使用的内容吗?

不。

  1. 是否可以安全地假设 gcc-4.8 和 gcc-4.8 不会导致构建(依赖于 4.6.3)通过的情况,但实际上构建代码行为会发生变化?(可能是由于优化方式不同?)

取决于它们如何依赖 4.6.3。您的构建过程是否调用gccgcc-4.6?如果是后者,则不应有任何变化。如果是前者,您应该使用替代系统来配置gcc以使用gcc-4.6,或将您的流程更改为使用gcc-4.6/ g++-4.6。(查找update-alternatives。)

  1. 最重要的是,是否可以在系统上安装多个版本的编译器而不会破坏以前的版本?

是的,如果您使用合理构建的 Debian 软件包进行安装。安装多个版本的 GCC 并不罕见。

相关内容