一、安装环境
系统版本:centos6.0X64
原GCC版本:gcc-4.4.4
新GCC版本:gcc-4.6.1
二、安装方法一(自动安装)
连网环境下:
1. 获取gcc源码包
2. 解压
3. 进入解压后的文件,安装依赖文件:
./contrib/download_prerequisites【主要是安装gmp, mpc,mpfr包】
4. 生成配置文件: ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib (只编译64bit)
5. 编译安装: make & make install
6. 重启机器
三、安装方法二(手动安装)
1、下载安装的源码:
如下需要下载以下包:gcc-4.6.1.tar.bz2 gmp-4.3.2.tar.bz2 mpc-0.8.1.tar.gz mpfr-2.4.2.tar.bz2
下载地址如下:
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
wget http://ftp.gnu.org/gnu/gcc/gcc-4.6.1/gcc-4.6.1.tar.bz2 即可!
2、解压安装:由于有依赖,安装有先后顺序:GMP、MPFR、MPC、GCC
安装GMP: tar jxf gmp-4.3.2.tar.bz2 &&cd gmp-4.3.2/ ;./configure –prefix=/usr/local/gmp/ &&make &&make install
安装MPFR: cd ../ ;tar jxf mpfr-2.4.2.tar.bz2 ;cd mpfr-2.4.2/ ;./configure –prefix=/usr/local/mpfr –with-gmp=/usr/local/gmp &&make &&make install
安装MPC: cd ../ ;tar xzf mpc-0.8.1.tar.gz ;cd mpc-0.8.1 ;./configure –prefix=/usr/local/mpc –with-mpfr=/usr/local/mpfr –with-gmp=/usr/local/gmp
安装GCC:cd ../ ;tar jxf gcc-4.6.1.tar.bz2 ;cd gcc-4.6.1 ;./configure –prefix=/usr/local/gcc –enable-threads=posix –disable-checking –disable-multilib –enable-languages=c,c++ –with-gmp=/usr/local/gmp –with-mpfr=/usr/local/mpfr/ –with-mpc=/usr/local/mpc/
然后执行如下:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib/
//这一步很关键,设置变量,不设置后面会报错。
注意:在命令行中执行上述命令,添加环境变量,在重启后会失效。
将上述命令添加到文件/etc/bashrc 末尾,可以解决上述问题。
make && make install
安装完毕即可!然后做一个链接就可以使用GCC了
mkdir -p /data/backup/`date +%Y%m%d`
mv /usr/bin/{gcc,g++} /data/backup/`date +%Y%m%d`
新建软链接:
ln -s /usr/local/gcc/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc/bin/g++ /usr/bin/g++
三、测试GCC
直接输入gcc -v 可以查看到gcc 版本为4.6.1和相关的编译参数就ok了!
附上一个最简单的安装脚本:
- #!/bin/sh
- ##auto make install gcc
- ##2012-07-03
- tar jxf gmp-4.3.2.tar.bz2 &&cd gmp-4.3.2/ ;./configure –prefix=/usr/local/gmp/ &&make &&make install
- sleep 1
- cd ../ ;tar jxf mpfr-2.4.2.tar.bz2 ;cd mpfr-2.4.2/ ;./configure –prefix=/usr/local/mpfr –with-gmp=/usr/local/gmp &&make &&make install
- cd ../ ;tar xzf mpc-0.8.1.tar.gz ;cd mpc-0.8.1 ;./configure –prefix=/usr/local/mpc –with-mpfr=/usr/local/mpfr –with-gmp=/usr/local/gmp &&make &&make install
- cd ../ ;tar jxf gcc-4.6.1.tar.bz2 ;cd gcc-4.6.1 ;./configure –prefix=/usr/local/gcc –enable-threads=posix –disable-checking –disable-multilib –enable-languages=c,c++ –with-gmp=/usr/local/gmp –with-mpfr=/usr/local/mpfr/ –with-mpc=/usr/local/mpc/
- if
- [ $? -eq 0 ];then
- echo “This gcc configure is success”
- else
- echo “This gcc configure is failed”
- fi
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib/
- make && make install
- [ $? -eq 0 ]&&echo This is make install success
注意: 本文档中,gcc安装在/usr/local/目录下,在编译某些大型程序时,可能会出现以下问题:
1. 如在编译Gem5时,/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by build/ALPHA_SE/m5.opt). 主要原因是/usr/lib64/libstdc++.so.6仍然是旧版本gcc中的库,因此可以通过建立符号链接,ln -s /usr/local/gcc-4.4.6/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6
2. error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory. 通过再次添加环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib/ 解决该问题。
本文转载自“烟雨楼台” 博客 http://wgkgood.blog.51cto.com/1192594/917632