gcc 4.7 和 4.8 的安装会在同一台机器上和平共存吗?这最初是一台装有 Ubuntu 12.10(Quantal Quetzal)的机器,但以后可能会将其扩展到其他机器和发行版,甚至可能是我的 mac(它将是 4.8 和 Mountain Lion 上最后提供的苹果 gcc)。我正在尝试测试 gcc 在 4.8 中改进的诊断,将它们与 clang 进行比较,因此我需要 gcc 4.8。
如果上面的答案是肯定的,你如何调用 gcc 的每个安装?
gcc 4.7 和 4.8 的安装会在同一台机器上和平共存吗?这最初是一台装有 Ubuntu 12.10(Quantal Quetzal)的机器,但以后可能会将其扩展到其他机器和发行版,甚至可能是我的 mac(它将是 4.8 和 Mountain Lion 上最后提供的苹果 gcc)。我正在尝试测试 gcc 在 4.8 中改进的诊断,将它们与 clang 进行比较,因此我需要 gcc 4.8。
如果上面的答案是肯定的,你如何调用 gcc 的每个安装?
首先:是的,您可以在您的机器上安装多个 gcc。
如果您从默认的 Ubuntu 存储库安装 gcc,您可以使用gcc-4.6
, gcc-4.7
, ... 调用不同的版本。Ubuntu 工具链测试存储库ubuntu-toolchain-r/test
有一个 gcc-4.7 包。AFAIK 它还没有 gcc-4.8 包。存在维护 gcc 包的其他存储库(即使对于当前的 4.8 开发版本;对于 ubuntu gcc 存储库只有 google)。
除此之外,您还可以始终从源代码 ( http://gcc.gnu.org/install/index.html ) 编译 gcc 并拥有多个版本 ( http://gcc.gnu.org/faq.html#multiple )。
根据 gcc FAQ,您可以安装多个版本。看看这个链接http://gcc.gnu.org/faq.html#multiple
如果您自己构建 GCC(确保构建目录在源目录之外),您可以../gcc-trunk-srcdir/configure
使用 eg --program-suffix=-trunk
(可能还有一些--prefix
)然后将其安装为gcc-trunk
等g++-trunk
。因此您可以安装多个版本的 GCC。
但是,我建议避免使用 GCC 的混合物来编译程序。使用相同的 GCC 编译给定的应用程序或库。请注意,您可能会在libstdc++
库中遇到轻微的不兼容问题。
不要忘记--enable-plugins
最近 GCC 的选项(遗憾的是,默认情况下未启用此选项,IIRC)。您甚至可能想尝试MELT(一种用于扩展 GCC 的高级域特定语言)。
在某些发行版上,GCC 主干的最新快照可能被打包为gcc-snapshot