gcc-4.8.0编译器安装手册

来源:互联网 发布:matlab矩阵的点乘 编辑:程序博客网 时间:2024/06/11 23:50

一、环境

  虚拟机VMware Workstation Pro。安装centos系统,使用uname -a命令查看主机信息,显示内容如下:

Linux server 2.6.32-642.el6.i686 #1 SMP Tue May 10 16:13:51 UTC 2016 i686 i686 i386 GNU/Linux

使用gcc-v命令查看现有gcc版本是4.4.7-17,该版本的并没有安装g++编译器。显示内容如下:

Using built-in specs.Target: i686-redhat-linuxConfigured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linuxThread model: posixgcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)

二、安装过程

   从官网http://ftp.gnu.org/gnu/gcc/上下载的最新gcc安装包, 包名:gcc-4.8.0.tar.gz

 实验环境放在/home/server/Desktop/code/目录下,可以放到其他的目录

     注意:安装工作全程使用root用户,不使用其他的用户

解压:

tar-zxvf gcc-4.8.0.tar.gz

cd /home/wangjun/Desktop/code/

tar  -zxvf  gcc-4.8.0.tar.gz

cd  ../

创建gcc编译安装路径,命令为gcc-build-4.8.0

mkdirgcc-build-4.8.0  

cd gcc-build-4.8.0

 

../gcc-4.8.0/configure--enable-checking=release --enable-languages=c,c++ --disable-multilib

 

执行完这个后,会提示没有安装gmp,mpfr,mpc,查看gcc-4.8.0/ contrib下面

download_prerequisites文件,可以看到需要安装的软件和版本,从指定ftp://gcc.gnu.org/pub/gcc/infrastructure/服务器上下载,然后解压,并创建软链接文件,因为虚拟机不能连外网,这里手动操作。注意:软件版本要正确

下载安装包并解压

 

安装包放到gcc-4.8.0目录下

tar  xjf  gmp-4.3.2.tar.bz2 

tar  xjf  mpfr-2.4.2.tar.bz2

tar  xzf  mpc-0.8.1.tar.gz

ln  -sf   gmp-4.3.2 gmp

ln  -sf   mpfr-2.4.2 mpfr

ln  -sf   mpc-0.8.1 mpc

 

继续执行

cd ../gcc-build-4.8.0

../gcc-4.8.0/configure--enable-checking=release --enable-languages=c,c++ --disable-multilib

configure成功,执行make,会

原因是目前现有版本gcc4.4.7-17没有支持g++编译器,使用rpm工具安装g++

configure: error: C++ compiler missing or inoperationalmake[2]: *** [configure-stage1-libcpp] Error 1make[2]: Leaving directory `/home/wangjun/Desktop/code/gcc-build-4.8.0'make[1]: *** [stage1-bubble] Error 2make[1]: Leaving directory `/home/wangjun/Desktop/code/gcc-build-4.8.0'make: *** [all] Error 2

升级 gcc4.4.7-17到gcc4.4.7-18

 

执行 rpm -ivh gcc-4.4.7-18.el6.i686.rpm,可以看到有很多依赖的库没有安装,把依赖的库都安装了。

[server@client /home/server/Desktop/code/rpm]$rpm -ivh gcc-4.4.7-18.el6.i686.rpm
warning: gcc-4.4.7-18.el6.i686.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:        cpp = 4.4.7-18.el6 is needed by gcc-4.4.7-18.el6.i686        libgcc >= 4.4.7-18.el6 is needed by gcc-4.4.7-18.el6.i686        libgomp = 4.4.7-18.el6 is needed by gcc-4.4.7-18.el6.i686


rpm  -ivh cpp-4.4.7-18.el6.i686.rpm,可以看到和以前安装有所冲突,添--force强制安装

[root@client rpm]# rpm  -ivh cpp-4.4.7-18.el6.i686.rpmwarning: cpp-4.4.7-18.el6.i686.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEYPreparing...                ########################################### [100%]        file /usr/bin/cpp from install of cpp-4.4.7-18.el6.i686 conflicts with file from package cpp-4.4.7-17.el6.i686

执行rpm  -ivh --force cpp-4.4.7-18.el6.i686.rpm命令,安装成功

[root@client rpm]# rpm  -ivh  --force cpp-4.4.7-18.el6.i686.rpmwarning: cpp-4.4.7-18.el6.i686.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEYPreparing...                ########################################### [100%]   1:cpp                    ########################################### [100%]


注意:当rpm安装出现问题时,可以参考上面的方法解决


覆盖安装

rpm  -ivh  --force cpp-4.4.7-18.el6.i686.rpm

rpm  -ivh  --force libgcc-4.4.7-18.el6.i686.rpm

rpm  -ivh  --force libgomp-4.4.7-18.el6.i686.rpm

 

卸载旧的版本

rpm -e gcc-4.4.7-17.el6.i686

rpm -e libgomp-4.4.7-17.el6.i686

rpm -e cpp-4.4.7-17.el6.i686

rpm -e libgcc-4.4.7-17.el6.i686

 

安装gcc-4.4.7-18

rpm -ivh gcc-4.4.7-18.el6.i686.rpm

 

覆盖安装

rpm  -ivh  --force libstdc++-4.4.7-18.el6.i686.rpm

rpm -ivh libstdc++-devel-4.4.7-18.el6.i686.rpm

 

卸载旧的版本

rpm -e libstdc++-4.4.7-17.el6.i686

rpm -ivh gcc-c++-4.4.7-18.el6.i686.rpm

 

 

执行gcc  -v查看版本为 4.4.7-18

 

 

继续上面的安装步骤

cd  gcc-build-4.8.0

make

 

这个安装过程很漫长,大概还有40分钟,需要耐性等待

 

执行

make install

 

替换以前的版本

cd /usr/bin

cp gcc gcc.bak

cp g++ g++.bak

rm  -f gcc

rm  -f g++

ln  -sf/usr/local/bin/gcc  /usr/bin/gcc

ln  -sf/usr/local/bin/g++  /usr/bin/g++

 

查看编译器版本 g++ -v 和gcc –v

Using built-in specs.COLLECT_GCC=gccCOLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.8.0/lto-wrapperTarget: i686-pc-linux-gnuConfigured with: ../gcc-4.8.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilibThread model: posixgcc version 4.8.0 (GCC) 

Using built-in specs.COLLECT_GCC=g++COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.8.0/lto-wrapperTarget: i686-pc-linux-gnuConfigured with: ../gcc-4.8.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilibThread model: posixgcc version 4.8.0 (GCC) 


rmp安装包地址:http://mirrors.163.com/centos/6.9/os/i386/Packages/