CentOS 离线安装gcc(版本4.8.2)详细介绍
CentOS离线安装gcc
折腾了一天,功夫不负有心人,终于整出来了,还是很激动的呵呵。废话就不多说了,直接进入正题。
首先,在CentOS下安装gcc4.8.2需要先安装GMP,MPFR和MPC三个包。
安装包下载地址
从http://gcc.gnu.org/下载gcc安装包gcc-4.8.2.tar.gz
从ftp://ftp.gnu.org/gnu/gmp/下载GMP安装包gmp-5.1.3.tar.bz2
从http://ftp.gnu.org/gnu/mpfr/下载MPFR安装包mpfr-3.1.2.tar.gz
从http://www.cise.ufl.edu/mirrors/GNU/pub/gnu/mpc下载MPC安装包mpc-1.0.1.tar.gz
安装步骤如下:
把GMP,MPFR和MPC三个包分别解压到单独的文件中。
安装gmp
[root@liuyanmin~]#cdgmp-5.1.3 [root@liuyanmingmp-5.1.3]#./configure [root@liuyanmingmp-5.1.3]#make [root@liuyanmingmp-5.1.3]#makecheck
这一步是必要的,用来查看有没有文件不匹配或缺失,在最后提示,到时注意看有没有Erro之类的提示,如果没有说明安装正常了.本人安装过程中没有出现错误,如果网友编译过程中出了问题记得告诉我.
[root@liuyanmingmp-5.1.3]#makeinstall
安装编译后的软件,完成了安装过程
有必要说明程序的头文件(.h)和库文件(lib*)的位置,本次安装会安装在/usr/local/include和/usr/local/lib.这个对后面安装mpfr很有作用.
安装mpfr
[root@liuyanmin~]#cdmpfr-3.1.2 [root@liuyanminmpfr-3.1.2]#./configure--with-gmp-include=/usr/local/include--with-gmp-lib=/usr/local/lib [root@liuyanminmpfr-3.1.2]#make [root@liuyanminmpfr-3.1.2]#makecheck
在每步操作中一定要看看有没有错误,本人编译时没有错误。
[root@liuyanmingmp-5.1.3]#makeinstall
安装MPC
[root@liuyanmin~]#cdmpc-1.0.1 [root@liuyanminmpc-1.0.1]#./configure [root@liuyanminmpc-1.0.1]#make [root@liuyanminmpc-1.0.1]#makecheck [root@liuyanminmpc-1.0.1]#makeinstall
上边安装成功后,还要配置lib目录,因为gcc编译时需要
[root@liuyanminmpc-1.0.1]#exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
这次就可以安装gcc了
创建gcc安装目录/usr/gcc482
解压gcc4.8.2并进入解压后的目录,打开命令终端,执行
[root@liuyanmingcc4.8.2]# ./configure--prefix=/usr/gcc482--enable-threads=posix--disable-checking--disable-multilib--enable-languages=c,c++ [root@liuyanmingcc4.8.2]#make [root@liuyanmingcc4.8.2]#makeinstall
现在gcc4.8.2安装完成了,但是gcc4.8.2的环境变量还没有设置,系统中使用的还是旧版的gcc。
刚刚我们把gcc4.8.2安装在/usr/gcc482下,如果不知道的话可以通过下边这步查找一下。
确定新安装的GCC的路径,可以先updatedb,然后locategcc-4.8|tail找一下。
查看gcc4.8.2信息如下
ls/usr/gcc482/bin|grepgcc
设置使用新版的gcc4.8.2的方法,我现在有两种。
方法一:
添加gcc4.8.2到可选项:
update-alternatives--install/usr/bin/gccgcc/usr/gcc482/bin/i686-pc-Linux-gnu-gcc40
倒数第三个参数是名字,倒数第二个参数为新GCC路径,最后一个参数40为优先级,设大一些之后就自动使用新版了
这是我从网上找到的方法,可我试了,但gcc--v时显示的还是旧版本update-alternatives--displaygcc又显示正确,试想gcc482我们是安装了,可它的执行路径和lib并没有在系统中设置,而gcc--v肯定会从执行路径中寻找,因此它显示的结果是旧版的gcc又很正常了,对于这种做法目前我也很疑惑,哪位知道失败原因的,希望各位大虾多多指教啊!
方法二:
这种方法很简单,设置软链接即可
[root@liuymusr]#mkdir/usr/gcc447backup/ [root@liuymusr]#mv/usr/bin/{gcc,g++}/usr/gcc447backup [root@liuymusr]#ln-s/usr/gcc482/bin/gcc/usr/bin/gcc [root@liuymusr]#ln-s/usr/gcc482/bin/g++/usr/bin/g++ [root@liuymusr]#gcc-v
使用内建specs。
COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/gcc482/libexec/gcc/i686-pc-linux-gnu/4.8.2/lto-wrapper
目标:i686-pc-linux-gnu
配置为
:./configure--prefix=/usr/gcc482--enable-threads=posix--disable-checking --disable-multilib--enable-languages=c,c++
线程模型:posix
gcc版本4.8.2(GCC)
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!