在ubuntu 10.10上未出现下述错误。建议在gcc10.10以下版本中使用gcc3.4.6
---------------------
1 安装方法:
先下载gcc-3.4_3.4.6-6ubuntu5_i386.deb,
然后用 sudo dpkg -i xxx.deb命令安装
安装过程中,缺少什么依赖关系装什么
如果有相互依赖的关系,用sudo dpkg --force-depends -i xxx.deb命令安装
然后 ls /usr/bin/gcc* -ll
会看到两个版本的gcc
用 ln -sf /usr/bin/gcc-3.4 /usr/bin/gcc 命令将gcc3.4缺省gcc
2 测试:
然后随意写个helloworld程序,尝试编译一下 gcc -g helloworld.c
(1)bin缺少类错误:
a) /usr/bin/ld: cannot find crt1.o (我还出现了 crti.o crtn.o的问题 同理解决)
ln -sf /usr/lib/i386-linux-gnu/crt1.o /usr/lib/crt1.o
可能是双版本gcc的原因,需要将/usr/lib/i386-linux-gnu下的crt1.o 设置链接到/usr/lib/下
b) /usr/bin/ld: cannot find -lgcc_s
/usr/lib/gcc/i486-linux-gnu/3.4.6/文件夹下查找libgcc_s.so文件。libgcc_s.so是一个链接文件,链接到对应目录的libgcc_s.so.1文件。打开libgcc_s.so弹出提示链接已损坏
先定向libgcc_s.so.1,然后重新设置链接:
locate libgcc_s.so.1
ln -sf /lib/i386-linux-gnu/libgcc_s.so.1/usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so
(2)include类无法找到的错误
错误提示第一行是这样的 :bits/predefs.h no such file or directory.
接着一大堆找不到的错误,搞得你头昏脑涨。
事实上这个bits文件夹在/usr/include/i386-linux-gnu/下面,需要为这个文件夹建立一个软链接,像这样:
sudo ln -s /usr/include/i386-linux-gnu/bits /usr/include/bits
除了bits文件夹外,sys和gnu asm文件夹也要做相同的处理。