Linux系統沒有管理員權限如何編譯安裝高版本gcc
有一臺公共的服務器,每個人都有自己的賬號,但是沒有root權限,也不能使用sudo切換,此時需要使用gcc 7.5.0(默認gcc版本是4.8.5),因此只能通過在家目錄下編譯安裝高版本gcc來達到我們的目的,這樣就不會改變系統的gcc版本,也不涉及管理權限問題。
以下是編譯安裝gcc 7.5.0的完整步驟,可供參考。
(1)下載gcc-7.5.0源碼
[zsa@localhost ~]$ wget http://mirror.linux-ia64.org/gnu/gcc/releases/gcc-7.5.0/gcc-7.5.0.tar.gz
(2)解壓文件
[zsa@localhost ~]$ tar zxf gcc-7.5.0.tar.gz
[zsa@localhost ~]$ cd gcc-7.5.0
(3)執行以下命令,下載依賴庫,也可手動下載文件到當前目錄。
[zsa@localhost ~]$ contrib/download_prerequisites
(4)創建build文件夾并切換路徑
[zsa@localhost gcc-7.5.0]$ mkdir build && cd build
(5)執行configure命令,檢查編譯環境并生成MakeFile文件
[zsa@localhost build]$ ../configure --prefix=/home/zsa/gcc_7.5.0 --enable-language=c,c++,fortran --disable-multilib
(6)編譯環境檢查通過,執行make命令開始編譯、安裝
[zsa@localhost build]$ make -j4 && make install
(7)添加臨時環境變量,并打印gcc版本
export LD_LIBRARY_PATH=/home/zsa/gcc_7.5.0/lib:$LD_LIBRARY_PATH
export PATH=/home/zsa/gcc_7.5.0/bin:$PATH
能正確顯示gcc版本說明編譯安裝成功,如此就實現了不影響系統運行的情況下使用新版本的gcc,以上方法也可用來升級系統gcc,步驟稍有不同。
注意:如果編譯過程中出現錯誤提示:
error: Unable to find a suitable type for HOST_WIDE_INT
執行如下命令:
[zsa@localhost build]$ unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE
然后重新編譯即可:
[zsa@localhost build]$ make clean && make -j4