我们有一个新的应用程序需要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_PATH
和LIBRARY_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