Linux环境下最新版GCC安装总结--详细说明附案例(CentOS下安装最新版GCC 5.3.0)
2016-06-14 10:54
841 查看
1. GCC
这篇文章主要用来提供一些常见的指导,通常我们在安装GCC过程中都会出现常见的问题,官方的安装文件可以访问官方网址: InstallingGCC
我们主要从 “源文件来安装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.
相关文章推荐
- inotify-tools+rsync实时同步文件的配置方法(linux)
- Linux如何在系统启动时自动加载模块
- Linux进程间通信——使用信号量
- linux 命令发送 邮件
- linux文件压缩命令
- Linux中jdk的安装
- Linux系统相关配置
- Linux系统相关配置
- 永远不要在Linux执行的10个最危险的命令
- linux劫持系统调用connect
- linux下的文本处理工具---sed
- 修改linux系统的时间EDT为CST
- LinuxSvn服务器搭建之代码同步web目录
- CentOS、Ubuntu、Debian三个linux比较异同
- 嵌入式Linux C语言(二)——指针
- linux--sshd
- centos 文件编码转换命令
- linux基础知识补充
- Linux/Unix双机建立信任教程
- Linux下获取调用堆栈地址