1.下载低版本gcc3.4.6.
2.su
yum install compat-gcc-34*
3.1、先下载gcc-3.4.6.tar.bz2文件于/tmp目录下,并对其进行解压,于是在/tmp下有了gcc-3.4.6目录,它就是gcc-3.4.6的源目录
3.2、在/tmp下再建立一个gcc-3.4.6-bulid目录,作为gcc-3.4.6的目标目录。
3.3、在/usr/local下建立gcc-3.4.6-dest目录,作为gcc-3.4.6的配置目录。(需要root权限,所以可以这么做:sudo mkdir /usr/local/gcc-3.4.6-dest)
3.4、在gcc-3.4.6-bulid目录下(必须的),执行以下命令:
/tmp/gcc-3.4.6/configure --prefix=/usr/local/gcc-3.4.6-dest --enable-threads=posix --disable-checking --enable--long-long --with-system-zlib --enable-languages=c,c++
3.5、make bootstrap
3.6、make install
4、查看原来的gcc所在的路径:% which gcc
显示:/usr/local/ccache/gcc
/usr/local/ccache/就是原来gcc的目录
5、把GCC-3.4.6中的gcc、g++等命令在 /usr/local/ccache/目录下分别做一个符号连接:
> cd /usr/local/ccache/
> sudo ln -s /usr/local/gcc-3.4.6-dest/bin/gcc gcc346
> sudo ln -s /usr/local/gcc-3.4.6-dest/bin/g++ g++346 由于之前在configure时把java加进去在make时有错误,后来就没加了。
原则上,这样就可以分别使用gcc346、g++346来调用GCC-3.4.6的gcc、g++j完成对C、C++程序的编译了。同时,仍然能够使用旧版本的GCC编译器中的gcc、g++等命令。
6、库路径的设置
将${destdir}/lib路径添加到环境变量LD_LIBRARY_PATH中,最好添加到系统的配置文
件中,这样就不必要每次都设置这个环境变量了。可以直接在命令行上执行或者在文件/etc/profile中添加下面一句:
> sudo vi /etc/profile
setenv LD_LIBRARY_PATH /usr/local/gcc-3.4.6/lib:$LD_LIBRARY_PATH
7、测试新的编译命令(gcc346、g++346)否能正常工作。
只要输入命令:gcc346 -v
若有如下显示,说明是成功的:
Reading specs from /usr/lib/gcc-3.4.6/lib/gcc/i686-pc-linux-gnu/3.4.6/specs
Configured with: ./configure --prefix=/usr/lib/gcc-3.4.6 --enable-threads=posix --disable-checking --enable--long-long -with-system-zlib --enable-languages=c,c++
Thread model: posix
gcc version 3.4.6
如果还不放心 ,编一个简单的hello.c程序,如
#include <stdio.h>
int main(void) {printf("hello, Fedora15!\n");}
编译一下:gcc346 -o hello hello.c
若有目标hello文件出现,执行./hello,输出:hello, Fedora15!
OK。