如何使用多个版本的GCC

我们有一个新的应用程序需要glibc 2.4(来自gcc 4.1)。 我们运行的机器有gcc 3.4.6。 我们不能升级,应用程序必须在这台机器上运行。

我们安装了gcc 4.1,但是编译时使用了3.4.6中的所有包含等等。

我们如何解决这个问题?

任何build议使用4.1只是这个应用程序?

请参阅GNU GCC FAQ中的“如何安装多个版本的GCC”。

这里也有一个白皮书。

你有没有尝试gcc-select ? 否则,请尝试在shell中设置INCLUDE_PATHLIBRARY_PATH

你可能仍然执行旧的gcc。 尝试从gcc创建一个符号链接到你的版本,就像

 ln -s gcc-4.1 gcc 

当心不要删除放在那里的旧的“gcc”二进制文件,以防它们放置的不仅仅是一个符号链接。 如果你可以重新编译自己的gcc版本,那么最安全的就是在配置gcc的时候使用另一个前缀,就像--prefix=/home/jojo/usr/gcc (我用gcc-4.4从svn-trunk ,而且效果很好)。

请注意,这只是运行正确的海合会版本。 如果你更新你的gcc,你的glibc也不会自动更新。 这是一个独立的软件包,与系统的其他部分紧密相连。 安装另一个glibc版本时要小心。

update-alternatives是拥有多个gcc版本的好方法:

http://ubuntuguide.net/how-to-install-and-setup-gcc-4-1g4-1-in-ubuntu-10-0410-10

对于Ubuntu来说,这非常简单

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

sudo apt-get update

然后安装例如gcc版本6

sudo apt-get install gcc-6