1. 安装gcc
首先下载新版本的gcc:http://ftp.gnu.org/gnu/gcc/
安装GCC主要依赖三个库:GMP, MPFR 和MP)。之前的旧版本可能需要手动依次安装这些依赖库,但较新的版本其实只需要在GCC目录下运行下面这个命令就可以自动下载这几个组件,好像不用联网也可以。
./contrib/download_prerequisites
另外GCC不能直接在其源码中编译,而是在它的目录下新建一个文件夹,然后进入这个文件夹配置并编译安装,命令如下。
../configure --disable-checking --enable-languages=c,c++ --disable-multilib --prefix=/path/to/software/gcc --enable-threads=posix
make -j16
make install
然后将其添加到环境变量就可以了,添加的时候注意'$PATH'和'$LD_LIBRARY_PATH'放在后面,因为系统是从前向后寻找运行的。在.bashrc文件中加入下面两行。
export PATH=/home/lbz/opt/gcc/bin:$PATH
export LD_LIBRARY_PATH=/home/lbz/opt/gcc/lib/:/home/lbz/opt/gcc/lib64:$LD_LIBRARY_PATH
之后执行
source .bashrc
但是我在输入后提示错误 if: Expression Syntax。这是由于shell的问题。执行命令bash或者exec bush就可以了。
至此gcc安装完成,可以gcc -v和g++ -v查看下是否安装成功。
2. 安装binutils
gcc安装完成后编译代码,但是报错
/usr/bin/ld: BFD version 2.20.51.0.2-5.47.el6_9.1 20100205 internal error, aborting at reloc.c line 443 in bfd_get_reloc_size
/usr/bin/ld: Please report this bug.
collect2: ld returned 1 exit status
这是由于ld版本太老的缘故,需要安装新版本的binutils,下载地址:http://ftp.gnu.org/gnu/binutils/
之后也是一样进行编译和安装。
../configure --prefix=/path/to/software/binutilsmake -j16 && make install
添加环境变量如下
export PATH=/home/lbz/opt/binutils/bin:$PATH
export LD_LIBRARY_PATH=/home/lbz/opt/binutils/lib/:$LD_LIBRARY_PATH
现在就可以成功编译运行代码了。
3. 安装gdb
http://ftp.gnu.org/gnu/texinfo/