centos7.7安裝高版本gcc7.5實踐


centos7.7編譯安裝GCC7.5.0版本

編譯新版本的gcc,實際上也是需要一個低版本的gcc來編譯的,畢竟所有的編譯文件都是c語言開發出來的,所以系統中需要事先存在gcc才行,我們先來使用dnf命令安裝一下。

1、安裝舊版本gcc編譯環境

[root@localhost ~]# dnf isntall gcc gcc-c++ -y

使用默認的yum源安裝的gcc版本還是很低的,這也正是我們需要編譯安裝高版本的原因之一。

2、安裝其他的編譯環境

[root@localhost ~]# dnf install -y gmp-devel mpfr-devel libmpc-devel

3、安裝isl工具

isl工具是編譯新版本gcc時需要用到的,因此需要提前安裝。

[root@localhost ~]# wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.15.tar.bz2 
3.1、安裝bzip2工具,不然沒法解壓
[root@localhost ~]# dnf install lbzip2 -y
3.2、解壓
[root@localhost ~]# tar xf isl-0.15.tar.bz2 -C /usr/local
3.3、編譯安裝
[root@localhost ~]# cd /usr/local/isl-0.15
[root@localhost ~]# ./configure
[root@localhost ~]# make && make install

4、編譯安裝gcc7.5

4.1、下載gcc7.5.0的包
[root@localhost ~]# wget http://mirror.linux-ia64.org/gnu/gcc/releases/gcc-7.5.0/gcc-7.5.0.tar.gz
4.2、解壓到/opt目錄下。
[root@localhost ~]# tar xf gcc-7.5.0.tar.gz -C /usr/local
[root@localhost local]# cd /usr/local && ls
bin  games  gcc-7.5.0  include  lib64  sbin  srcetc  lib  libexec  share

可以看到gcc-7.5.0這個目錄是解壓后的gcc包。

4.3、進入到/usr/local目錄下,創建一個臨時目錄
[root@localhost local]# mkdir /tmp

注意:創建臨時目錄的原因是因為gcc在編譯過程中需要臨時放置一些文件,如果都放在gcc-7.5.0目錄下是不建議的,因此建議分開。

4.4、執行configure命令
[root@localhost local]# cd tmp
[root@localhost tmp]# ../gcc-7.5.0/configure --prefix=/usr/local/gcc7 --enable-language=c,c++,go --disable-multilib

--prefix指定新版本gcc安裝的路徑。

4.5、增加編譯庫依賴地址,編譯
[root@localhost tmp]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
[root@localhost tmp]# make -j 4

編譯的時間比較長,將近一個小時。這里指定4個核心來編譯。

4.6、安裝
[root@localhost tmp]# make install

5、創建gcc軟鏈接。

一般都會要求新舊版本共存,萬一某些應用依賴舊版本的gcc呢?

[root@localhost tmp]# ln -sf /usr/local/gcc7/bin/gcc /usr/bin/gcc
[root@localhost tmp]# ln -sf /usr/local/gcc7/bin/g++ /usr/bin/g++
[root@localhost tmp]# ln -sf /usr/local/gcc7/include/c++/7.5.0 /usr/include/c++/7.5.0
[root@localhost tmp]# ln -sf /usr/local/gcc7/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6

6、測試是否安裝成功

[root@localhost local]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc7/libexec/gcc/x86_64-pc-linux-gnu/7.5.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-7.5.0/configure --prefix=/usr/local/gcc7 --enable-language=c,c++,go --disable-multilib
Thread model: posix
gcc version 7.5.0 (GCC) 
[root@localhost local]#
[root@localhost local]# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/local/gcc7/libexec/gcc/x86_64-pc-linux-gnu/7.5.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-7.5.0/configure --prefix=/usr/local/gcc7 --enable-language=c,c++,go --disable-multilib
Thread model: posix
gcc version 7.5.0 (GCC)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM