首先,现在最新的包GCC 4.2.bz2,一般的到处都有的下([url]ftp://ftp.gnu.org/gnu/gcc[/url]),linux下的下载速度很满,20多k,很恶心,我喜欢迅雷的下载速度,在windows下下载,大概42M,下载速度2到4M,回到linux下,挂载,ntfs格式的我的,具体不说了,说安装! 进入到挂载的目录下,先cp GCC4.2.bz2 /azuo, cd /azuo, tar -xvf GCC 4.2.bz2 , 得到gcc-4.2, cd gcc-4.2,在/usr目录下建立一个文件夹就是现在要存放新的gcc的目录, mkdir /usr/gcc4 。/configure ?prefix=/usr/gcc4 回车,就会有配置信息,只要不报错就可以了, make,这个过程很久,因为我没有设置一些具体的选项,因此,所有的组件几乎都要编译一遍,我的电脑cpu:AMD 3200+X2 ,1.5g内存,大概花费一个半小时。 到这个时候为止,/usr/gcc4下还没有任何东西,编译过程都是发生在源文件夹,让我们再来一个动作,所有的要用到的东西都会配置到目标文件夹下, make install; 这个过程也不短,等着就是了。 一切都已经弄好了之后就是使用最新的gcc了,可以看到,在/usr/gcc4/bin下有gcc,g++,等一些东西,都是可以用的,写两个程序: aa.c: 1 #include 2 3 int main(void) { 4 printf(”ad”); 5 return 1; 6 } gcc -o aa aa.c 执行 ./aa 上面的这个是c的,下面这个就是c++的了: a.cpp: 1 #include 2 using namespace std; 3 int main(void) { 4 cout << “Ok!” << endl; 5 return 1; 6 } g++ -o a a.cpp 执行就是了。/a 一切ok了,就可以让最新的gcc工具取代原来的工具了。 看看原来的gcc是什么版本的,我们好卸载它: [root@BTazuo bin]# rpm -qa gcc gcc-4.1.2-27.fc7 [root@BTazuo bin]# rpm -e gcc-4.1.2-27.fc7 error: Failed dependencies: gcc is needed by (installed) systemtap-0.5.13-1.fc7.i386 gcc = 4.1.2-27.fc7 is needed by (installed) gcc-c++-4.1.2-27.fc7.i386 gcc = 4.1.2-27.fc7 is needed by (installed) gcc-gfortran- 4.1.2 -27.fc7. i386 [root@BTazuo bin]# rpm -e gcc-c++-4.1.2-27.fc7.i386 [root@BTazuo bin]# rpm -e gcc-gfortran-4.1.2-27.fc7.i386 [root@BTazuo bin]# rpm -e gcc-4.1.2-27.fc7 error: Failed dependencies: gcc is needed by (installed) systemtap-0.5.13-1.fc7.i386 [root@BTazuo bin]# g++ bash: g++: command not found 卸载成功 [root@BTazuo bin]# gcc gcc: 没有输入文件 ,可见gcc犹在 [root@BTazuo bin]# rpm -e systemtap-0.5.13-1.fc7.i386 [root@BTazuo bin]# gcc gcc: 没有输入文件 [root@BTazuo bin]# rpm -e gcc-4.1.2-27.fc7 [root@BTazuo bin]# gcc bash: /usr/lib/ccache/gcc: 没有那个文件或目录 最后的卸载成功! 这个时候,要注意了,我的gcc在/usr/bin下面有,在/usr/lib/ccache这个目录下也有,分别在这两个下面都要建立一个链接: [root@BTazuo bin]# ln -s /usr/gcc4/bin/g++ g++ [root@BTazuo bin]# g++ g++: 没有输入文件 可见g++已经装好了,可以使用了。 然后是gcc: [root@BTazuo bin]# ln -s /usr/gcc4/bin/gcc gcc [root@BTazuo bin]# gcc bash: /usr/lib/ccache/gcc: 没有那个文件或目录 [root@BTazuo bin]# ./gcc gcc: 没有输入文件 可见还要给另外一个目录建立一个gcc的链接: [root@BTazuo lib]# ln -s /usr/gcc4/bin/gcc /usr/lib/ccache/gcc [root@BTazuo lib]# gcc gcc: 没有输入文件 到此为止,gcc和g++都已经建立好了,可以用了,最后把原来的包和解压文件都可以删除了,以节省硬盘空间!文章来自:[url]http://linux.chinaitlab.com/set/738529.html[/url]gcc-4.2.3 installation本来想彻底的来一次lfs的,可惜实在是没有时间,所以就对gcc来了次小升级,gcc的编译安装是个非常头疼的事情,失败了好几次终于安装成功。下述安装过程在CentOS5上测试成功。。。
- $ tar xvf gcc-4.2.3.tar.gz$ mkdir gcc-build$ cd gcc-build$../gcc-4.2.3/configure –prefix=/usr/local/gcc-4.2.3 \ –enable-threads=posix –disable-checking \ –enable–long-long \ –host=i386-redhat-linux \ –with-system-zlib \ –enable-languages=c,c++,java$ make bootstrap //重复编译自身$ make -k check 2>&1 | tee gcc-check-log//-k跳过错误重定向到gcc-check-log$ grep Error gcc-check-log //查看错误信息# make install
若想重新编译 make clean 清除上次编译遗留下的文件uninstallation 因为我的旧版是RPM包的,查看版本号 gcc –version 然后 rpm -e 删除了 若旧版是用源码安装的,whereis gcc 或者 which gcc 来查看所在路径,删除即可工具链设置:命令文件符号连接到 /usr/bin 目录下:
- $ cd /usr/bin$ ln -sv /usr/local/gcc-4.2.3/bin/gcc gcc$ ln -sv /usr/local/gcc-4.2.3/bin/g++ g++$ ln -sv /usr/local/gcc-4.2.3/bin/gcj gcj
库文件设置:将/usr/local/gcc-4.2.3/lib 路径添加到环境变量LD_LIBRARY_PATH中
- #vi /etc/profile
添加下列代码setenv LD_LIBRARY_PATH /usr/local/gcc-4.2.3/lib:$LD_LIBRARY_PATH清理现场
- $ rm -rf gcc-4.2.3$ rm -rf gcc-build
黄宝的博客
贪婪是最真实的贫穷,满足是最真实的财富