Linux系統下源碼編譯升級gcc(6.5.0&11.1.0)
一、前言
本文介紹在CentOS7系統下使用源碼軟件包編譯升級GCC版本的相關操作步驟。
CentOS7默認安裝的gcc版本是4.8,gcc 4.8最主要的一個特性就是全面支持C++11,如果不清楚什么用的也沒關系,簡單說一些C++11標準的程序都需要gcc 4.8以上版本的gcc編譯器編譯。很多工具依賴的是更高版本的gcc,比如編譯MySQL 8.0(8.0.16以上版本是C++14標準,需gcc 5.3以上版本)、Redis 6.0.x、GRPC等。
手動編譯升級gcc往往耗時長,而且不一定能成功,CentOS系統下可使用一個第三方庫SCL(軟件選集)的 devtoolset 快速切換gcc版本。但目前第三方庫SCL的devtoolset-6版本已經結束支持,只能通過源碼編譯安裝升級gcc 6.x。且第三方庫SCL中目前(2021年5月)還沒有gcc 10.x以上版本的YUM源,若要升級為10.x以上的版本也需要通過源碼編譯安裝。
官網:https://gcc.gnu.org/
源碼包下載:
http://ftp.gnu.org/gnu/gcc
二、查看系統gcc版本
- gcc -v
三、升級到6.5.0版本
## 下載解壓
- cd /data/tools
- wget http://ftp.gnu.org/gnu/gcc/gcc-6.5.0/gcc-6.5.0.tar.gz
- tar xf gcc-6.5.0.tar.gz
## 下載依賴文件
- cd gcc-6.5.0/
- ./contrib/download_prerequisites
## 新建gcc-bulid-6.5.0目錄(與gcc-6.5.0同級)并進入該目錄中(目錄名自定義)
- mkdir -p /data/tools/gcc-bulid-6.5.0
- cd /data/tools/gcc-bulid-6.5.0
## 生成makefile文件
- ../gcc-6.5.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
## 編譯安裝(注:編譯時間較長,請耐心等待)
- make -j 2
- //make -j 指定的是CPU內核數量,加快編譯速度(根據實際情況修改)
- make install
## 查看gcc版本,驗證升級是否成功
- gcc -v
四、升級到11.1.0版本
## 下載解壓
- cd /data/tools
- wget http://ftp.gnu.org/gnu/gcc/gcc-11.1.0/gcc-11.1.0.tar.gz
- tar xf gcc-11.1.0.tar.gz
## 下載依賴文件
- cd gcc-11.1.0/
- ./contrib/download_prerequisites
## 新建gcc-bulid-11.1.0目錄(與gcc-11.1.0同級)并進入該目錄中(目錄名自定義)
- mkdir -p /data/tools/gcc-bulid-11.1.0
- cd /data/tools/gcc-bulid-11.1.0
## 生成makefile文件
- ../gcc-11.1.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
## 編譯安裝(注:編譯時間較長,請耐心等待)
- make -j 2
- //make -j 指定的是CPU內核數量,加快編譯速度(根據實際情況修改)
- make install
## 查看gcc版本,驗證升級是否成功
- gcc -v