手機版
你好,游客 登錄 注冊
背景:
閱讀新聞

Ubuntu 18.04 下搭建 C/C++編譯開發環境及GCC多版本切換

[日期:2019-04-23] 來源:Linux公社  作者:醉落紅塵 [字體: ]

本文詳細記錄在Ubuntu 18.04.2 下搭建 C/C++編譯開發環境的步驟,Ubuntu 18.04.2預裝GCC版本為7.4,但有時在編譯是需要用的不同gcc版本,下面就介紹如何安裝不同的gcc 和g++版本,并設置根據不同的需要在不同版本之間切換。

1. 環境準備

首先需要安裝gcc和g++環境

安裝之前查看是否有安裝,使用命令:

gcc --version
g++ --version

Ubuntu 18.04 下搭建 C/C++編譯開發環境

Ubuntu 18.04中gcc與g++默認安裝的是7.4.0版本。

你也可以使用以下命令安裝其他版本的gcc與g++:

# 版本安裝:這里選擇的式版本8

[email protected]:~/linuxidc.com$ sudo apt install gcc-8
[sudo] linuxidc 的密碼:
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹     
正在讀取狀態信息... 完成     
將會同時安裝下列軟件:
  cpp-8 libasan5 libgcc-8-dev libubsan1
建議安裝:
  gcc-8-locales gcc-8-multilib gcc-8-doc libgcc1-dbg libgomp1-dbg libitm1-dbg
  libatomic1-dbg libasan5-dbg liblsan0-dbg libtsan0-dbg libubsan1-dbg
  libmpx2-dbg libquadmath0-dbg
下列【新】軟件包將被安裝:
  cpp-8 gcc-8 libasan5 libgcc-8-dev libubsan1
升級了 0 個軟件包,新安裝了 5 個軟件包,要卸載 0 個軟件包,有 185 個軟件包未被升級。
需要下載 21.5 MB 的歸檔。
解壓縮后會消耗 71.4 MB 的額外空間。
您希望繼續執行嗎? [Y/n] Y

Ubuntu 18.04 下搭建 C/C++編譯開發環境

[email protected]:~/linuxidc.com$ sudo apt install g++-8
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹     
正在讀取狀態信息... 完成     
將會同時安裝下列軟件:
  libstdc++-8-dev
建議安裝:
  g++-8-multilib gcc-8-doc libstdc++6-8-dbg libstdc++-8-doc
下列【新】軟件包將被安裝:
  g++-8 libstdc++-8-dev
升級了 0 個軟件包,新安裝了 2 個軟件包,要卸載 0 個軟件包,有 185 個軟件包未被升級。
需要下載 11.6 MB 的歸檔。
解壓縮后會消耗 45.2 MB 的額外空間。
您希望繼續執行嗎? [Y/n] Y

Ubuntu 18.04 下搭建 C/C++編譯開發環境

# 版本安裝:這里選擇的式版本5

[email protected]:~/linuxidc.com$ sudo apt-get install gcc-5
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹     
正在讀取狀態信息... 完成     
將會同時安裝下列軟件:
  cpp-5 gcc-5-base libasan2 libgcc-5-dev libisl15 libmpx0
建議安裝:
  gcc-5-locales gcc-5-multilib gcc-5-doc libgcc1-dbg libgomp1-dbg libitm1-dbg
  libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg
  libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg
下列【新】軟件包將被安裝:
  cpp-5 gcc-5 gcc-5-base libasan2 libgcc-5-dev libisl15 libmpx0
升級了 0 個軟件包,新安裝了 7 個軟件包,要卸載 0 個軟件包,有 185 個軟件包未被升級。
需要下載 19.2 MB 的歸檔。
解壓縮后會消耗 61.5 MB 的額外空間。
您希望繼續執行嗎? [Y/n] Y

Ubuntu 18.04 下搭建 C/C++編譯開發環境及GCC多版本切換

[email protected]:~/linuxidc.com$ sudo apt-get install g++-5
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹     
正在讀取狀態信息... 完成     
將會同時安裝下列軟件:
  libstdc++-5-dev
建議安裝:
  g++-5-multilib gcc-5-doc libstdc++6-5-dbg libstdc++-5-doc
下列【新】軟件包將被安裝:
  g++-5 libstdc++-5-dev
升級了 0 個軟件包,新安裝了 2 個軟件包,要卸載 0 個軟件包,有 185 個軟件包未被升級。
需要下載 9,864 kB 的歸檔。
解壓縮后會消耗 38.6 MB 的額外空間。
您希望繼續執行嗎? [Y/n] y

Ubuntu 18.04 下搭建 C/C++編譯開發環境及GCC多版本切換

現在查看已安裝gcc版本

[email protected]:~/linuxidc.com$ ls /usr/bin/gcc*
/usr/bin/gcc    /usr/bin/gcc-ar    /usr/bin/gcc-nm    /usr/bin/gcc-ranlib
/usr/bin/gcc-5  /usr/bin/gcc-ar-5  /usr/bin/gcc-nm-5  /usr/bin/gcc-ranlib-5
/usr/bin/gcc-7  /usr/bin/gcc-ar-7  /usr/bin/gcc-nm-7  /usr/bin/gcc-ranlib-7
/usr/bin/gcc-8  /usr/bin/gcc-ar-8  /usr/bin/gcc-nm-8  /usr/bin/gcc-ranlib-8

Ubuntu 18.04 下搭建 C/C++編譯開發環境及GCC多版本切換

update-alternatives是ubuntu系統中專門維護系統命令鏈接符的工具,通過它可以很方便的設置系統默認使用哪個命令、哪個軟件版本。
 其中40 ,50 ,70是優先級數值可以自己設定,--slave能保證gcc和g++保持相同的版本。

設置優先級

[email protected]:~/linuxidc.com$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 30
[email protected]:~/linuxidc.com$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 40
[email protected]:~/linuxidc.com$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50

Ubuntu 18.04 下搭建 C/C++編譯開發環境及GCC多版本切換

[email protected]:~/linuxidc.com$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 30
[email protected]:~/linuxidc.com$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 40
[email protected]:~/linuxidc.com$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50

Ubuntu 18.04 下搭建 C/C++編譯開發環境及GCC多版本切換

接著查看

選擇gcc版本

[email protected]:~/linuxidc.com$ sudo update-alternatives --config gcc
有 3 個候選項可用于替換 gcc (提供 /usr/bin/gcc)。

  選擇      路徑          優先級  狀態
------------------------------------------------------------
  0            /usr/bin/gcc-5  50        自動模式
  1            /usr/bin/gcc-5  50        手動模式
  2            /usr/bin/gcc-7  40        手動模式
* 3            /usr/bin/gcc-8  30        手動模式

要維持當前值[*]請按<回車鍵>,或者鍵入選擇的編號:

現在默認為gcc8

選擇g++版本

[email protected]:~/linuxidc.com$ sudo update-alternatives --config g++
有 3 個候選項可用于替換 g++ (提供 /usr/bin/g++)。

  選擇      路徑          優先級  狀態
------------------------------------------------------------
* 0            /usr/bin/g++-5  50        自動模式
  1            /usr/bin/g++-5  50        手動模式
  2            /usr/bin/g++-7  40        手動模式
  3            /usr/bin/g++-8  30        手動模式

要維持當前值[*]請按<回車鍵>,或者鍵入選擇的編號:3
update-alternatives: 使用 /usr/bin/g++-8 來在手動模式中提供 /usr/bin/g++ (g++)

Ubuntu 18.04 下搭建 C/C++編譯開發環境及GCC多版本切換

安裝后查看版本,如下圖所示:

[email protected]:~/linuxidc.com$ gcc --version
gcc (Ubuntu 8.3.0-6ubuntu1~18.04) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[email protected]:~/linuxidc.com$ g++ --version
g++ (Ubuntu 8.3.0-6ubuntu1~18.04) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Ubuntu 18.04 下搭建 C/C++編譯開發環境及GCC多版本切換

2. 編寫C源代碼

可以通過任何文本編輯器創建一個.cpp的文件.在這里用創建一個linuxidc.com.cpp文件,并保存在一個文件中,測試的代碼為:

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello, Linux公社 www.vnrggh.live" << endl;
    return 0;
}

3. 代碼編譯

打開終端使用如下命令進行編譯:

// 命令格式:g++ 文件名
g++ linuxidc.com.cpp

注意:這里的文件名其實是包含文件路徑的。要是不知道文件路徑的話可以在敲完g++加上空格之后直接把文件拖進去,系統會自動添加文件路徑。默認的輸出位置是“主文件夾”,默認輸出文件是a.out。可以使用以下格式指定輸出的文件名:

g++ 文件名 -o 輸出文件名

比如g++ linuxidc.com.cpp -o linuxidc.com

輸出的路徑仍然是默認路徑,文件名應是*.out的格式。這里要注意的是使用-o命令必須指定輸出文件名,否則會報錯:g++: argument to ‘-o’ missing。

對于g++的命令使用,可以通過:man g++命令查看

4. 執行并輸出結果

通過以上編譯得到*.out文件以后,你也可以直接把這個文件拖到Terminal上,通過按回車鍵運行,如圖所示:

Ubuntu 18.04 下搭建 C/C++編譯開發環境及GCC多版本切換

到這里就完成了Ubuntu 18.04下 C/C++環境的搭建,對于從編譯到運行的過程可以通過腳本來一步到位執行。

Linux公社的RSS地址http://www.vnrggh.live/rssFeed.aspx

本文永久更新鏈接地址http://www.vnrggh.live/Linux/2019-04/158258.htm

linux
本文評論   查看全部評論 (1)
表情: 表情 姓名: 字數

       

評論聲明
  • 尊重網上道德,遵守中華人民共和國的各項有關法律法規
  • 承擔一切因您的行為而直接或間接導致的民事或刑事法律責任
  • 本站管理人員有權保留或刪除其管轄留言中的任意內容
  • 本站有權在網站內轉載或引用您的評論
  • 參與本評論即表明您已經閱讀并接受上述條款
第 1 樓
* Dmouse會員 發表于 2019/5/6 22:41:19
扣扣
彩票平台