天天看點

Linux安裝gcc 7.3.0編譯器詳解(CentOS 7 64位系統)

因為原生的CentOS 7自動安裝的gcc版本是4.8.5;

yum -y install gcc gcc-c++ kernel-devel

最近工作和學習中需要使用C++17,是以被迫安裝新版本的gcc編譯器。

一、環境準備

yum -y install gmp-devel                                                           // 編譯依賴此庫  

yum -y install mpfr-devel                                                          // 編譯依賴此庫  

yum -y install libmpc-devel                                                        // 編譯依賴此庫  

yum -y install bzip2                                                                   // 編譯依賴此庫

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.15.tar.bz2   // 編譯依賴此庫

tar -jxvf isl-0.15.tar.bz2  

cd isl-0.15  

./configure  

make  

make install

編譯完成,檢查gcc版本:

[root@localhost gcc-7.3.0]# gcc -v

Using built-in specs.

COLLECT_GCC=gcc

COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.3.0/lto-wrapper

Target: x86_64-pc-linux-gnu

Configured with: ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

Thread model: posix

gcc version 7.3.0 (GCC)

二、gcc源碼下載下傳

http://ftp.gnu.org/gnu/gcc/

C++17要求gcc版本在7.1以上

三、gcc源碼編譯

tar xvf gcc-7.3.0.tar.gz

chmod -R 777 gcc-7.3.0

cd gcc-7.3.0

./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

make -j4 #編譯非常耗時間,筆者花了大約50min

四、編譯報錯及解決方法

問題1:gcc源碼自身編譯,找不到庫的問題

gcc-7.3.0/host-x86_64-pc-linux-gnu/gcc/cc1: error while loading shared libraries: libisl.so.15: cannot open shared object file: No such file or directory
make[3]: *** [s-selftest] Error 1
make[3]: Leaving directory `/root/Downloads/gcc-7.3.0/host-x86_64-pc-linux-gnu/gcc'
make[2]: *** [all-stage1-gcc] Error 2
make[2]: Leaving directory `/root/Downloads/gcc-7.3.0'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/root/Downloads/gcc-7.3.0'      

# 在"/usr/local/lib"目錄下,怎麼就找不到庫libisl.so。

解決方法是:加到"/etc/ld.so.conf"或用"LD_LIBRARY_PATH"。

vi /etc/ld.so.conf  #添加庫的路徑/usr/local/lib/

然後終端指令行執行ldconfig,再重新編譯。

問題2:gcc更新完成之後,編譯項目工程時遇到的軟連接配接問題

/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found

解決辦法:

https://blog.csdn.net/libaineu2004/article/details/77100132

五、筆者cmake版本是3.13.0,平時習慣用Qt Creator作為IDE開發項目。gcc更新之後,相應的配置需要調整:

Linux安裝gcc 7.3.0編譯器詳解(CentOS 7 64位系統)

調整為:

Linux安裝gcc 7.3.0編譯器詳解(CentOS 7 64位系統)

---

參考文獻:

https://www.cnblogs.com/davygeek/p/8018628.html

姐妹篇:

https://blog.csdn.net/libaineu2004/article/details/49160315