GCC最新版安装及错误解决

来源:互联网 发布:备忘录软件哪个好 编辑:程序博客网 时间:2024/06/13 17:26

linux下gcc安装


写在前:方法一最方便。。。


方法一:

因为是centos linux,默认可以采用yum方式安装,则采用如下命令安装gcc编译器即可:
# yum -y install gcc
方法二:


1、准备工作


linux一般可以从软件包等方式直接安装gcc,但不一般不是最新版,比如需要支持C++11

等原因,则需要安装最新版gcc。

先查看已有的gcc版本



如果系统还没有任何gcc被安装,则需要从开发包中先安装默认的低版本的gcc

centos下也可以安装带gcc的开发工具:yum groupinstall "Development Tools"

若不先安装旧版本的话安装可能会出现如下错误:


[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
  1. //=======================================  
  2. configure: error: no acceptable C compiler found in $PATH  
  3. //=======================================  



2、下载


gcc下载地址

ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc


gcc在下面的 releases 文件夹内,目前最新版为 4.8.2



若直接安装会出现如下错误:


[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
  1. //=============================出现错误=====================================  
  2. configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.  
  3. Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify  
  4. their locations.  
  5. //==========================================================================  

因为缺少gcc依赖的gmp、mpfr、mpc三个软件,所以需要下载安装他们,他们在上面的
 infrastructure 文件夹内可以找到。同时gmp与mpfr及mpc之间还有相互依赖关系,所以
 要按下面顺序安装,并在 configure后面的选项后面带上所依赖软件的路径


下载好所有文件及解压后如下:



3、安装及错误解决



[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
  1. //1、解压gcc  
  2. $tar -jxvf gcc-4.8.2.tar.bz2  
  3. $cd gcc-4.8.2  
  4.   
  5. //2、解压安装gmp  
  6. $tar -jxvf gmp-4.3.2.tar.bz2  
  7. $cd gmp-4.3.2  
  8. $./configure --prefix=/usr/local/gmp-4.3.2 //gmp安装路径  
  9. $make  
  10. $make check  
  11. $sudo make install  
  12.   
  13. //3、解压安装mpfr  
  14. $tar -jxvf mpfr-2.4.2.tar.bz2  
  15. $cd mpfr-2.4.2  
  16. //congfigure后面是mpfr安装路径及依赖的gmp路径  
  17. $configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2  
  18. $make  
  19. $make check  
  20. $sudo make install  
  21.   
  22. //4、解压安装mpc  
  23. $tar -zxvf mpc-0.8.1.tar.gz  
  24. $cd mpc-0.8.1  
  25. //congfigure后面是mpc安装路径及依赖的gmp和mpfr路径  
  26. $configure --prefix=/usr/local/mpc-0.8.1  
  27. --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2  
  28. $make  
  29. $make check  
  30. $sudo make install  
  31.   
  32.   
  33. 若没有下面的配置,则会出现如下的mpc库错误及其他库错误等等,所以需要进行一系列配置  
  34.   
  35. //================================出现错误======================================  
  36. gcc error while loading shared libraries: libmpc.so.2:  
  37. cannot open shared object file:No such file or directory  
  38. //===============================================================================  
  39.   
  40. //5、配置库路径  
  41.   
  42. #vi /etc/profile  //向/etc/profile文件末尾添加下面的语句(root权限下):  
  43.   
  44. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gmp-4.3.2/lib:  
  45. /usr/local/mpfr-2.4.2/lib:/usr/local/mpc-0.8.1/lib  
  46.   
  47. #source /etc/profile //使其立即生效  
  48.   
  49. #echo $LD_LIBRARY_PATH //查看配置是否成功  
  50.   
  51. /usr/local/gmp-4.3.2/lib:/usr/local/mpfr-2.4.2/lib:/usr/local/mpc-0.8.1/lib //显示这个表示成功  
  52.   
  53.   
  54. #vi /etc/ld.so.conf //编辑这个文件,添加下面路径  
  55.   
  56. /usr/local/mpc-0.8.1/lib  
  57. /usr/local/gmp-4.3.2/lib  
  58. /usr/local/mpfr-2.4.2/lib  
  59.   
  60. $sudo ldconfig  
  61.   
  62.   
  63.   
  64. //6、安装gcc  
  65. $./configure --prefix=/usr/local/gcc4.8.2 --enable-threads=posix --disable-checking --disable-multilib   
  66. --enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.8.1  
  67.   
  68.   
  69. $make  
  70. $sudo make install  
  71.   
  72. //7、配置gcc  
  73. #vi /etc/profile  //向/etc/profile文件末尾添加下面的语句(root权限下):  
  74.   
  75. export PATH=$PATH:/usr/local/gcc4.8.2  
  76.   
  77. #source /etc/profile //使其立即生效  
  78.   
  79. #rm /usr/bin/gcc    //删除旧的软连接  
  80. #ln -s /usr/local/gcc4.8.2/bin/gcc /usr/bin/gcc  //使新版本建立软连接  
  81.   
  82. //下面的同理  
  83. #rm /usr/bin/g++  
  84. #ln -s /usr/local/gcc4.8.2/bin/g++ /usr/bin/g++  



4、最后



查看是否安装更新成功:





这样最终就安装更新成功了,安装过程时间不短,破费功夫,若依赖文件及配置等处理的好的话会快些,过程中会出现很多错误, 一定要耐心解决。

一般命令的话在一般用户下即可解决($),需要 root 权限的,可以用 su 切换到 root 下 (#),或者在一般用户下,命令前加  sudo  ,

关于 sudo 可以查看:

http://blog.csdn.net/wtfmonking/article/details/15494295




5、其他问题


如果不小心误删了 /usr/bin/gcc ,可以先删除旧版 gcc,在从软件包重新安装旧版,
最后再按上面的步骤安装新版。centos下可以:


[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
  1. $sudo yum remove gcc-* -y  
  2. $sudo yum groupinstall "Development Tools"  
原创粉丝点击