使用源碼安裝gcc 9.2.0

安裝之前,系統中必須要有cc或者gcc等編譯器,並且是可用的,或者用環境變量CC指定系統上的編譯器。如果系統上沒有編譯器,不能安裝源代碼形式的GCC 9.2.0。如果是這種情況,可以在網上找一個與你係統相適應的如RPM等二進制形式的GCC軟件包來安裝使用。本文介紹的是以源代碼形式提供的GCC軟件包的安裝過程,軟件包本身和其安裝過程同樣適用於其它Linux和Unix系統。

 

1 下載

在GCC網站上(http://gcc.gnu.org)下載資源。可供下載的文件一般有兩種形式:gcc-9.2.0.tar.gz和gcc-9.2.0.tar.bz2

2. 解壓縮

將下載好的gcc-9.1.0.tar.bz2或gcc-9.1.0.tar.gz選擇下面相應的一種方式解包:

 tar zxvf gcc-9.2.0.tar.gz

或者

 tar -jxvf  gcc-9.2.0.tar.bz2 

新生成的gcc-9.2.0這個目錄被稱爲源目錄,用{srcdir}表示它。以後在出現{srcdir}的地方,應該用真實的路徑來替換它。

在{srcdir}/INSTALL目錄下有詳細的GCC安裝說明,可用瀏覽器打開index.html閱讀。

安裝gcc之前,需要安裝幾個依賴包。在gcc安裝文件中,有個腳本可以幫我們自動下載、配置、安裝依賴庫

        $ cd  {srcdir}                                      //進入解壓後的目錄

        $ ./contrib/download_prerequisites                     //執行腳本

 

3. 建立目標目錄

目標目錄用{objdir}表示,是用來存放編譯後生成的文件的。GCC建議編譯後的文件不要放在源目錄{srcdir]中最好單獨存放在另外一個目錄中。

例如,可以這樣建立一個叫 /usr/local/gcc-9.2.0的目標目錄並進入:

 mkdir /usr/local/gcc-9.2.0

cd   /usr/local/gcc-9.2.0            //這一步是爲了讓生成的文件都到目標目錄中

4. 配置

配置是通過執行{srcdir}下的configure來完成的。${destdir}代表你想要安裝的目錄:

 {srcdir}/configure --prefix={destdir} [其它選項]

例如,如果想將GCC 9.2.0安裝到/opt/gcc-9.2.0目錄下在我的機器上,我是這樣配置的:

{srcdir}/configure --prefix=/opt/gcc-9.2.0  --disable-checking  --enable-languages=c,c++  --disable-multilib

將GCC安裝在/opt/gcc-9.2.0目錄下,不檢測,支持C/C++語言,不編譯32位操作系統

5. 編譯

% make  -j4    

j4代表最多同時能允許4個編譯命令執行,數字可根據具體的電腦cpu核心數進行選擇以提高編譯速度

6. 安裝

% make install

至此,GCC 9.2.0安裝過程就完成了。

7. 終端命令設置

GCC 9.1.0的所有文件,包括命令文件(如gcc、g++)、庫文件等都在{destdir}目錄下。由於命令文件和庫文件所在的目錄還沒有包含在相應的搜索路徑內,所以必須要作適當的設置之後編譯器才能順利地找到並使用它們。

1.打開    /etc/profile   在其中的最後添加代碼    例如     export PATH="{destdir}/bin:$PATH"(添加庫文件類似)

2.在terminal中使用命令    source /etc/profile  使修改生效

3.使用 gcc  -v命令查看一下版本吧(我用yum將其餘預版本的gcc都刪了)

 

其他方式,而是用符號連接的方式實現,這樣做的好處是我仍然可以使用系統上原來的舊版本的GCC編譯器。

首先,查看原來的gcc所在的路徑:

% which gcc

在我的系統上,上述命令顯示:/usr/bin/gcc。因此,原來的gcc命令在/usr/bin目錄下。我們可以把GCC 9.1.0中的gcc、g++等命令在/usr/bin目錄下分別做一個符號連接:

% cd /usr/bin

% ln -s {destdir}/bin/gcc gcc920

% ln -s {destdir}/bin/g++ g++920

 

這樣,就可以分別使用gcc、g++來調用GCC 9.2.0的gcc、g++    完成對C、C++ 程序的編譯了。同時,仍然能夠使用舊版本的GCC編譯器中的gcc、g++等命令。

(終於搞定了   fuckkkkkkk!!)

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章