欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

centos6.5上升级gcc到gcc4.9.2 博客分类: linux gcclinux

程序员文章站 2024-03-06 19:24:32
...

 

 

 

源码安装需要编译首先需要安装一个gcc
yum install gcc gcc-c++ 一般centos这个默认会装成4.4.7的版本比较低
安装完后先面开始安装

 

1. 下载gcc-4.9.2 源码包

http://mirror.hust.edu.cn/gnu/ 这里找到gcc目录下载4.9.2tar.bz2包
2. 解压源码

tar jxvf gcc-4.9.2.tar.bz2   


3. 下载依赖库这里可以使用两种方法我是用了手动下载的方法然后在configure的时候加上参数

../configure --prefix=/usr/local/gcc --with-gmp=/usr/local/gmp-6.0.0/ --with-mpfr=/usr/local/mpfr-3.1.2/ --with-mpc=/usr/local/mpc-1.0.2/  --with-system-zlib --disable-multilib --enable-languages=c,c++

 

自动下载方法如下

  1. cd gcc-4.9.2/  
  2. cd contrib/  
  3. ./download_prerequisites   


4. 配置依赖库

  1. mv gmp-6.0.0/ ../gmp  
  2. mv mpfr-3.1.2/ ../mpfr  
  3. mv mpc-1.0.2/ ../mpc                    

备注这几个版本不一定是这个样子我没有用自动下载的 这样的做法好处是,不用单独编译gmp、mpfr和mpc三个包,放在gcc源码下面一起编译。

5.执行configure命令,产生makefile

 

 

  1. ../configure --prefix=/usr/local/gcc --with-gmp=/usr/local/gmp-6.0.0/ --with-mpfr=/usr/local/mpfr-3.1.2/ --with-mpc=/usr/local/mpc-1.0.2/  --with-system-zlib --disable-multilib --enable-languages=c,c++

  2. --enable-languages指定了支持哪些语言可以编译

 

6. 编译。

 

  1. make -j4  

7. 安装。

 

  1. make install     


8 .编译时的错误处理。
错误一:

 

make[2]: *** [configure-stage1-zlib] Error 1
make[2]: Leaving directory `/home/fenghaixiong/Downloads/gcc-4.9.2/build'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/home/fenghaixiong/Downloads/gcc-4.9.2/build'
make: *** [all] Error 2

解决办法:

安装如下内容:

 

 

  1. yum install gcc-c++  

错误2

configure: error: cannot compute suffix of object files: cannot compile

这个是由于mpc、gmp和mpfr 库找不到

在当前的shell中执行

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-1.0.2/lib:/usr/local/gmp-6.0.0/lib:/usr/local/mpfr-3.1.2/lib,

当然你可以吧这个加入到环境变量中去,我在这个问题上犯了两次错误了。
 
错误三
warning: zlib.h: No such file or directory
后面又跟着很多未定以的符号错误 这是因为没有安装libz-devel的包
sudo yum install libz-devel  就好了
安装完成后切换到gcc的bin目录下./gcc  -v查看版本信息输出如下:
Using built-in specs.
COLLECT_GCC=./gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.9.2/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/usr/local/gcc --with-gmp=/usr/local/gmp-6.0.0/ --with-mpfr=/usr/local/mpfr-3.1.2/ --with-mpc=/usr/local/mpc-1.0.2/ --with-system-zlib --disable-multilib --enable-languages=c,c++
Thread model: posix
gcc version 4.9.2 (GCC)
 
 
 
 

 

相关标签: gcc linux