ubuntu 11.10 在已有gcc 4.6情况下装 gcc3.4.6

初次小结,有错勿怪……

因为gcc 4.1之后的版本(http://www.cnblogs.com/napoleon_liu/archive/2011/02/14/1953983.html),对于栈帧中变量的分配进行优化,使得不再遵循先定义的变量高地址,后定义的低址地;而是从高地址向低地址依次为:后定义的数组、先定义的数组、后定义的变量、先定义的变量。

故此决定安装较老版本的gcc,这次经历也让我感到了linux下安装个东西实在是……#¥……#@#¥%


http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-3.3/

先下载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


然后随意写个helloworld程序,尝试编译一下 gcc -g helloworld.c

如果不能通过,哈哈~你跟我一样倒霉~

/usr/bin/ld: cannot find crt1.o
ln -sf /usr/lib/i386-linux-gnu/crt1.o /usr/lib/crt1.o

可能是双版本gcc的原因,需要将/usr/lib/i386-linux-gnu下的crt1.o 设置链接到/usr/lib/下


/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
还有个链接也有问题,同理处理



感谢 http://hi.baidu.com/hisumg/blog/item/8038dd47ccf32732879473a2.html

         http://www.cnblogs.com/cassvin/archive/2011/07/24/Linux_Qtopia_firstBlogOncnblogs.html

你可能感兴趣的:(ubuntu,gcc)