日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

LINUX升級(jí)GCC版本至8.3.0

 昵稱QAb6ICvc 2022-05-13

GCC(GNU Compiler Collection,GNU編譯器套件),是由 GNU 開(kāi)發(fā)的編程語(yǔ)言編譯器。它是以GPL許可證所發(fā)行的自由軟件,也是 GNU計(jì)劃的關(guān)鍵部分。GCC原本作為GNU操作系統(tǒng)的官方編譯器,現(xiàn)已被大多數(shù)類Unix操作系統(tǒng)(如Linux、BSD、Mac OS X等)采納為標(biāo)準(zhǔn)的編譯器,GCC同樣適用于微軟的Windows。  GCC是自由軟件過(guò)程發(fā)展中的著名例子,由自由軟件基金會(huì)以GPL協(xié)議發(fā)布。

GCC 原名為 GNU C 語(yǔ)言編譯器(GNU C Compiler),因?yàn)樗局荒芴幚?C語(yǔ)言。GCC 很快地?cái)U(kuò)展,變得可處理 C++。后來(lái)又?jǐn)U展能夠支持更多編程語(yǔ)言,如Fortran、Pascal、Objective-C、Java、Ada、Go以及各類處理器架構(gòu)上的匯編語(yǔ)言等,所以改名GNU編譯器套件(GNU Compiler Collection)。 

本文描述如何通過(guò)編譯源碼,來(lái)升級(jí)gcc編譯版本,由于CentOS默認(rèn)gcc編譯版本4.8.5太低不能滿足需求。故此處給出一個(gè)編譯腳本。

[root@tencent ~]# mkdir /root/gcc

[root@tencent ~]# cd /root/gcc

[root@tencent ~]# vim upgradeGcc.sh

[root@tencent ~]# chmod +x upgradeGcc.sh

下面為腳本具體內(nèi)容

#! /bin/bash

#在非root用戶下,需要進(jìn)行提權(quán),使用sudo命令

#獲取GCC源碼

#sudo wget https://ftp./gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gz

wget https://ftp./gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gz

#解壓

#sudo tar -zxvf gcc-8.3.0.tar.gz

tar -zxvf gcc-8.3.0.tar.gz 

#進(jìn)入解壓后的文件夾

cd gcc-8.3.0/

#下載安裝GCC的先決條件

#sudo ./contrib/download_prerequisites

./contrib/download_prerequisites

#返回上一級(jí)目錄,建立編譯輸出目錄

cd ..

#sudo mkdir bulid

mkdir bulid

#進(jìn)入輸出目錄,執(zhí)行如下命令,生成MakeFile文件

cd bulid/

#sudo ../gcc-8.3.0/configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

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

#執(zhí)行命令進(jìn)行編譯,若想加快編譯速度,可以在其后面加上-j4(利用4個(gè)job,-j8也行),此值不宜設(shè)置過(guò)高

#sudo make

make

#安裝

#sudo make install

make install

#檢查版本

gcc -v

#此時(shí),雖安裝結(jié)束,但path的路徑仍為舊路徑,故需要更改path環(huán)境變量

cp /usr/local/lib64/libstdc++.so.6.0.25 /lib64

cd /lib64

rm -rf libstdc++.so.6

ln -s libstdc++.so.6.0.25 libstdc++.so.6

執(zhí)行如下命令,等待安裝完成,預(yù)計(jì)完成時(shí)間較長(zhǎng)。

[root@tencent ~]# chmod 777 /root/gcc/upgradeGcc.sh

[root@tencent ~]# ./root/upgradeGcc.sh

shell 中的命令既可以以腳本的方式執(zhí)行,也可以以單條命令執(zhí)行。

注:在安裝過(guò)程中,可能會(huì)出現(xiàn)沒(méi)有c++編譯環(huán)境。此時(shí)只需要安裝c++編譯環(huán)境

yum install gcc-c++ -y

如果報(bào)下類錯(cuò)誤是因?yàn)榫幾g時(shí)缺少iconv的相關(guān)lib,需要安裝iconvlib,而本地which iconv可以看到機(jī)器上是裝有iconv的(which iconv輸出結(jié)果為:/usr/local/bin/iconv)。如果你的機(jī)器也安裝了iconv,那么接著往下看,否則先安裝下再接著看。

這個(gè)問(wèn)題的原因是linux在查找動(dòng)態(tài)鏈接庫(kù)時(shí),忽視了/usr/local/lib中一系列*.so,將其添加到配置文件中,就可以解決。

checking size of off_t... configure: error: in `/tmp/vim74/src':

configure: error: cannot compute sizeof (off_t)

See `config.log' for more details.

解決辦法(有root權(quán)限)

1、打開(kāi)/etc/ld.so.conf這個(gè)配置文件

2、把下面這行內(nèi)容添加進(jìn)去

/usr/local/lib

3、保存文件,執(zhí)行命令:/sbin/ldconfig

解決辦法(沒(méi)有root權(quán)限)

對(duì)于非root用戶來(lái)說(shuō),/etc/ld.so.conf是read-only的,想要解決這個(gè)問(wèn)題也是有辦法的。在vim74目錄下先執(zhí)行如下命令:

export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH // 為編譯器設(shè)定額外的搜索路徑

原理基本類似,修改ld.so.conf的根本原因只是為了讓編譯器在make過(guò)程中去對(duì)應(yīng)的路徑下尋找依賴,這里直接指定搜索路徑,是一個(gè)效果。

接下來(lái),再make && make install 就正常了。

本人使用的是第二個(gè)解決方案,成功解決該問(wèn)題。

————————————————

版權(quán)聲明:本文為CSDN博主「Nice_young」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/qq_41955653/article/details/88775031

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多