Chinaunix首页 | 论坛 | 博客
  • 博客访问: 89532
  • 博文数量: 42
  • 博客积分: 905
  • 博客等级: 准尉
  • 技术积分: 400
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-14 14:08
文章分类

全部博文(42)

文章存档

2015年(1)

2011年(41)

我的朋友

分类: LINUX

2011-04-06 15:02:50

我用的系统是ubuntu 9.04 ,gcc版本是4.3。编译的程序在其他机器上运行报/lib/libc.so.6: version `GLIBC_2.7' not found。那台机器是gcc3.4的版本。所以ubuntu需要降gcc版本。
简单来说,就是下载低版本的GCC,然后重新创建gcc的软链接。(其实,GCC也就是一个符号链接,"cd /usr/bin"下,"ls -l | grep gcc"一下就可以看到了)。

假设现在我们的GCC版本为4.3,要把GCC降低到GCC3.4。

首先,你需要去你的usr/bin/下去看看有没有gcc-3.4这样文件,如果没有的话,就安装一下吧:
下面介绍两种安装方法:apt-get安装和dpkg安装

1.apt-get安装
apt-get install gcc-3.4

之后,你需要把usr/bin/目录下的gcc文件删除掉或者避免意外发生,可以把它命名为gcc.bak。这里需要说明的如果你不删除的话,你会发现你 使用ln -s /usr/bin/gcc-3.4 /usr/bin/gcc总是不起作用。实际上你在用gcc -v查看当前版本时,就一直使用的usr/bin/gcc。而ln -s /usr/bin/gcc-3.4 /usr/bin/gcc的目的就是为了生成3.4版本的gcc。一句话,你只需要执行:

rm /usr/bin/gcc
ln -s /usr/bin/gcc-3.4 /usr/bin/gcc


然后再gcc -v就可以看到当前版本就是3.4了。如果你想再使用当前的4.2.3的话,就使用同样的方法:

rm /usr/bin/gcc
ln -s /usr/bin/gcc-4.2.3 /usr/bin/gcc


再gcc -v来确定一下版本就知道了。

如果运行
ls -la /bin/sh
看到链接的是 dash ,则请运行以下命令
sudo dpkg-reconfigure dash
选择 no 以删除 dash ,编译完成可再运行此命令选择 yes 以重新安装 dash
此处如果不改好的话,编译时会出现错误.


2.dpkg安装
如果使用apt-get update无法更新下载列表
就需要手动下载gcc安装包和依赖包。
下载地址
需要下载的包:cpp-3.4_3.4.6-1ubuntu2_i386.deb,gcc-3.4-base_3.4.6-1ubuntu2_i386.deb,gcc-3.4_3.4.6-1ubuntu2_i386.deb

dpkg -i cpp-3.4_3.4.6-1ubuntu2_i386.deb
dpkg -i gcc-3.4-base_3.4.6-1ubuntu2_i386.deb
dpkg -i gcc-3.4_3.4.6-1ubuntu2_i386.deb

ln -s /usr/bin/gcc-4.2.3 /usr/bin/gcc

手动下载g++安装包和依赖包:
libstdc++6-dev_3.4.6-1ubuntu2_i386.deb,g++-3.4_3.4.6-1ubuntu2_i386.deb

dpkg --force-depends -i libstdc++6-dev_3.4.6-1ubuntu2_i386.deb
dpkg -i g++-3.4_3.4.6-1ubuntu2_i386.deb

编译的时候遇到 can't find -lz
需要下载包:zlib1g_1.2.3.3.dfsg-7ubuntu1_i386.deb,zlib1g-dev_1.2.3.3.dfsg-7ubuntu1_i386.deb
dpkg -i zlib1g_1.2.3.3.dfsg-7ubuntu1_i386.deb
dpkg -i zlib1g-dev_1.2.3.3.dfsg-7ubuntu1_i386.deb
阅读(2744) | 评论(0) | 转发(0) |
0

上一篇:机器字节序

下一篇:ubuntu 无线上网

给主人留下些什么吧!~~