我有一个相当简单的问题,但我却无法找到答案。
在我的工作场所,有一个安装了 ubuntu 12.04 的 CI 服务器,该服务器使用编译器的默认 c/c++ 二进制文件 ( 4.6.3 ) 版本。现在有一个项目需要新版本的编译器 (包括 c++11 的编译器)。
3个问题:
安装 gcc-4.8 和 g++4.8 是否会破坏/更改现有 4.6.3 版本使用的内容?(也许存在可以被覆盖的共享库依赖项?)
是否可以安全地假设 gcc-4.8 和 gcc-4.8 不会导致构建(依赖于 4.6.3)通过的情况,但实际上构建代码行为会发生变化?(可能是由于优化方式不同?)
最重要的是,是否可以在系统上安装多个版本的编译器而不会破坏以前的版本?
请耐心等待,因为 c/c++ 不是我曾经使用过的编程语言。
答案1
- 安装 gcc-4.8 和 g++4.8 会破坏/更改现有 4.6.3 版本使用的内容吗?
不。
- 是否可以安全地假设 gcc-4.8 和 gcc-4.8 不会导致构建(依赖于 4.6.3)通过的情况,但实际上构建代码行为会发生变化?(可能是由于优化方式不同?)
取决于它们如何依赖 4.6.3。您的构建过程是否调用gcc
或gcc-4.6
?如果是后者,则不应有任何变化。如果是前者,您应该使用替代系统来配置gcc
以使用gcc-4.6
,或将您的流程更改为使用gcc-4.6
/ g++-4.6
。(查找update-alternatives
。)
- 最重要的是,是否可以在系统上安装多个版本的编译器而不会破坏以前的版本?
是的,如果您使用合理构建的 Debian 软件包进行安装。安装多个版本的 GCC 并不罕见。