您的位置:首页 > 运维架构 > Linux

Linux环境下最新版GCC安装总结--详细说明附案例(CentOS下安装最新版GCC 5.3.0)

2016-06-14 10:54 841 查看

1. GCC

这篇文章主要用来提供一些常见的指导,通常我们在安装GCC过程中都会出现常见的问题,官方的安装文件可以访问官方网址: Installing
GCC

我们主要从 “源文件来安装GCC” 因为不同的操作系统不同的版本已经GCC所需要的必要的软件的版本不同,我们通常都是在下载完源代码文件后根据自身电脑的配置来完成编译和安装。

2. 下载GCC源代码

GCC主要通过 SVN 和 FTP 传播,可以参考官方的 版本发布 获取最新的GCC源代码,下载完成后,我们需要首先确认GCC安装时必须的所有工具,比如 GMP,MPFR,MPC库文件和一些必要的Binutils (比如ld,as,size等必要的二进制工具)

下载完成后,解压下载的tarball文件,在解压目录下,直接运行 一个 contrib/download_prerequisties 的脚本文件,该脚本文件会自动运行检测并安装所需的库文件(添加必要的软连接soft link到必要的目录)

3. 配置 GCC

很多人都急于进入到解压后的文件直接配置必须的安装条件,在没有充分阅读官方的文档之前很容易犯下这样的错误,

1. 不要在srcdir 源文件目录下运行 ./configure 这是不鼓励的,我们需要在源文件之外运行它,可以在srcdir同层目录创建一个objdir,然后进入objdir敲击 ../srcdir/configure 进行必要的配置

2. GCC如果需要动态链接 GMP,MPFR,MPC库,则相应的库文件必须要得包含在 动态库寻找路径中。

3. 编译和安装GCC

在配置完之后,直接运行make, make install 会编译GCC和安装GCC, 但通常我们建议在之前的配置阶段 可以指定prefix 目录,这样可以方便之后更好的管理

4. 举个例子,下载 4.6.2版本的gcc 源代码文件

tar xzf gcc-4.6.2.tar.gz
cd gcc-4.6.2
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-4.6.2/configure --prefix=$HOME/gcc-4.6.2 --enable-languages=c,c++,fortran,go
make
make install


5. FAQ 常见问题 (指定binutils)

1. 配置过程中,我们系统中如果存在多个 binutils 的版本,我们需要指定所在的ld, as 路径,否则配置就会选择默认的binutils,默认的碧奴体力上安装在 /usr/bin目录下,假如最新的binutils安装在 /opt/usr/binutils_2.26.8/bin目录下,则应该指定binutils的安装目录

./configure --with-as=pathname --with-ld=pathname

6. 实践案例


Install
Latest version of gcc and gcc-c++ on CentOS 6.7 from source code

In order to compile gcc and gcc-c++ from source code,you need the following two modules.

#yum install gcc

#yum install gcc-c++

1.Install GMP 4.2+,
#cd /opt/src
#wget https://gmplib.org/download/gmp/gmp-6.1.0.tar.bz2 #tar xvjf gmp-6.1.0.tar.bz2
#mkdir /opt/gmp-6.1.0
# cd gmp-6.1.0
#./configure --prefix=/opt/gmp-6.1.0
#make
#make check
#make install


2.Install MPFR 2.4.0+
#cd /opt/src
#wget http://www.mpfr.org/mpfr-current/mpfr-3.1.4.tar.bz2 #tar xvjf mpfr-3.1.4.tar.bz2
#mkdir /opt/mpfr-3.1.4
# cd mpfr-3.1.4
#./configure --prefix=/opt/mpfr-3.1.4 --with-gmp=/opt/gmp-6.1.0
#make
#make check
#make install


3.Install MPC 0.8.0+
#cd /opt/src
#wget http://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
#tar xvzf mpc-1.0.3.tar.gz
#mkdir /opt/mpc-1.0.3
# cd mpc-1.0.3
#./configure --prefix=/opt/mpc-1.0.3 --with-gmp=/opt/gmp-6.1.0 --with-mpfr=/opt/mpfr-3.1.4
#make
#make check
#make install


4.Configure environmental settings
#echo /opt/mpc-1.0.3/lib >> /etc/ld.so.conf.d/gcc530-x86_64.conf
#echo /opt/gmp-6.1.10/lib >> /etc/ld.so.conf.d/gcc530-x86_64.conf
#echo /opt/mpfr-3.1.4/lib >> /etc/ld.so.conf.d/gcc530_x86_64.conf
#ldconfig
*Make sure there is no error/


5.Download gcc and install gcc
#cd /opt/src/
#wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-5.3.0/gcc-5.3.0.tar.bz2 #tar xvjf gcc-5.3.0.tar.bz2
#mkdir /opt/gcc-5.3.0
#mkdir objdir
#cd objdir
#../gcc-5.3.0/configure --prefix=/opt/gcc-5.3.0 --enable-languages=c,c++ --with-gmp=/opt/gmp-6.1.0 --with-mpfr=/opt/mpfr-3.1.4 --with-mpc=/opt/mpc-1.0.3 --disable-multilib
#make
#make install
#yum remove gcc
#yum  remove gcc-c++
#ln -sf /opt/gcc-5.3.0/bin/gcc /usr/bin/
#ln -sf /opt/gcc-5.3.0/bin/c++ /usr/bin/
#ln -sf /opt/gcc-5.3.0/bin/cpp /usr/bin/
#ln -sf /opt/gcc-5.3.0/bin/g++ /usr/bin/
#ln -sf /opt/gcc-5.3.0/bin/gcc-ar /usr/bin/
#ln -sf /opt/gcc-5.3.0/bin/gcc-nm /usr/bin/
#ln -sf /opt/gcc-5.3.0/bin/gcc-ranlib /usr/bin/
#ln -sf /opt/gcc-5.3.0/bin/gcov /usr/bin/
#ln -sf /opt/gcc-5.3.0/bin/gcov-tool /usr/bin/
#ln -sf /opt/gcc-5.3.0/bin/gcc /usr/bin/cc
#ln -sf /opt/gcc-5.3.0/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6
#echo /opt/gcc-5.3.0/lib/../lib64 >> /etc/ld.so.conf.d/gcc-530_x86_64.conf
#ldconfig
Make sure there is no error.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: