admin管理员组

文章数量:1646427

自动安装包:

来源:basicbench包中的basicbench/GCC(by 侯宇)
可将上述目录打包放到需要安装的机器上运行自动安装脚本实现安装。

手动安装步骤:

查看当前gcc版本

  1. gcc --version

下载依赖包

直接安装gcc的话会提示在安装gcc之前,必须安装GMP 4.2以上版本,MPFR2.3.1以上版本, MPC 0.8.0以上版本。

  1. cd /tmp
  2. wget https://ftp.gnu/gnu/gcc/gcc-4.8.2/
  3. tar xvjf gcc-4.8.2.tar.bz2
  4. wget http://10.88.162.17/software/gcc62/gmp-4.3.2.tar.bz2
  5. tar xvjf gmp-4.3.2.tar.bz2
  6. wget http://10.88.162.17/software/gcc62/mpc-0.8.1.tar.gz
  7. tar xvzf mpc-0.8.1.tar.gz
  8. wget http://10.88.162.17/software/gcc62/mpfr-2.4.2.tar.bz2
  9. tar xvjf mpfr-2.4.2.tar.bz2
  10. wget http://10.88.162.17/software/gcc62/binutils-2.27.tar.bz2
  11. tar xvjf binutils-2.27.tar.bz2

编译gcc

按顺序安装gcc依赖的数学库,最后安装gcc

1.编译安装gmp,gcc依赖的数学库

  1. cd /tmp/gmp-4.3.2
  2. mkdir build && cd build
  3. ../configure --prefix=/opt/compiler/gcc-4.8.2
  4. make -j20
  5. make install

2.编译安装mpfr,gcc依赖的数学库

  1. cd /tmp/mpfr-2.4.2
  2. mkdir build && cd build
  3. ../configure --prefix=/opt/compiler/gcc-4.8.2 --with-gmp=/opt/compiler/gcc-4.8.2
  4. make -j20
  5. make install

3.编译安装mpc,gcc依赖的数学库

  1. cd /tmp/mpc-0.8.1
  2. mkdir build && cd build
  3. ../configure --prefix=/opt/compiler/gcc-4.8.2 --with-gmp=/opt/compiler/gcc-4.8.2 --with-mpfr=/opt/compiler/gcc-4.8.2
  4. make -j20
  5. make install

4.编译安装gcc
主要配置选项说明如下:
—prefix # 设置工具链安装路径
—disable-multilib # 关闭跨平台支持
—enable-languages # 可设置下列选项的一个或几个“all, ada, c, c++, fortran, go, jit, lto, objc, obj-c++”,默认不设置与all等效。
详细配置选项参考:https://gcc.gnu/install/configure.html

  1. export LD_LIBRARY_PATH=/opt/compiler/gcc-4.8.2/lib/:$LD_LIBRARY_PATH
  2. cd /tmp/gcc-4.8.2
  3. mkdir build && cd build
  4. ../configure --prefix=/opt/compiler/gcc-4.8.2 --with-gmp=/opt/compiler/gcc-4.8.2 --with-mpc=/opt/compiler/gcc-4.8.2 --with-mpfr=/opt/compiler/gcc-4.8.2 --enable-checking=release --enable-ld=yes --enable-gold=yes --disable-multilib
  5. make -j20
  6. make install

编译binutils

  1. cd /tmp/bintuils-2.27
  2. mkdir build && cd build
  3. ../configure --prefix=/opt/compiler/gcc-4.8.2 --enable-ld=yes --enable-gold=yes --with-gmp=/opt/compiler/gcc-4.8.2 --with-mprf=/opt/compiler/gcc-4.8.2 --with-mpc=/opt/compiler/gcc-4.8.2
  4. make -j20
  5. make install

安装工具链

为不破坏系统环境,本文编译的工具链采用独立方式安装,安装目录为/opt/compiler/gcc-4.8.2,使用前应在系统环境变量中声明。

  1. echo "export PATH=/opt/compiler/gcc-4.8.2/bin/:\$PATH" >> ~/.bash_profile
  2. echo "export LD_LIBRARY_PATH=/opt/compiler/gcc-4.8.2/lib/:/opt/compiler/gcc-4.8.2/lib64/:\$LD_LIBRARY_PATH" >> ~/.bash_profile
  3. . ~/.bash_profile
  1. gcc --version
  2. 查看版本发现已更新为gcc 4.8.2

gcc、g++、gcj软连接

可以利用${destdir}/bin放在环境变量PATH中使用gcc-4.8.2,也可以用符号连接的方式实现。使用连接实现方式的好处是仍然可以使用系统上原来的旧版本的GCC编译器。查看原来gcc的路径,并把gcc-4.8.2中的gcc、g++、gcj等命令在原路径目录下分别做一个符号连接,这样,就可以分别使用gcc434、g++434、gcj434来调用GCC 4.1.2的gcc、g++、gcj完成对C、C++、JAVA程序的编译了。同时,仍然能够使用旧版本的GCC编译器中的gcc、g++等命令。

  1. ln -s /opt/compiler/gcc-4.8.2/bin/gcc gcc482
  2. ln -s /opt/compiler/gcc-4.8.2/bin/g++ g++482
  3. ln -s /opt/compiler/gcc-4.8.2/bin/gcj gcj482

  

库路径的设置

将${destdir}/lib路径添加到环境变量LD_LIBRARY_PATH中,即在RH Linux下可以直接在命令行上执行

  1. export LD_LIBRARY_PATH=/opt/compiler/gcc-4.8.2/bin:$LD_LIBRARY_PATH

但最好将路径添加到系统的配置文件中,这样就不必要每次都设置这个环境变量了,在文件/home/work/.bash_profile或者在/etc/skel/.bash_profile中添加下面两句:

  1. LD_LIBRARY_PATH=:/opt/compiler/gcc-4.8.2/mpc-0.8.1/lib:/opt/compiler/gcc-4.8.2/gmp-4.3.2/lib:/opt/compiler/gcc-4.8.2/mpfr-2.4.2/lib:/opt/compiler/gcc-4.8.2/lib
  2. export LD_LIBRARY_PATH

重启系统设置生效,或者执行命令

  1. source /home/work/.bash_profile

然后利用gcc —version查看版本

再用新的编译命令(gcc412、g++412等)编译以前的C、C++程序,检验新安装的GCC编译器是否能正常工作。

本文标签: 史上最强版本教程