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/