1. 前言
什麼是GCC?
GCC(GNU Compiler Collection)是一款開源的編譯器,能夠編譯C、C++等多種程式語言。作為Linux發行版的標準編譯器,它被廣泛使用。
GCC的主要特點:
- 支援C、C++、Fortran、Java等多種程式語言。
- 開源軟體,任何人都可以自由使用。
- 編譯速度快,可靠性高。
為什麼要在Ubuntu上使用GCC?
- 作為標準套件提供
GCC已包含在Ubuntu的官方套件庫中,因此安裝非常簡單。 - 擁有大量支援與文件
由於全球有許多使用者,因此關於疑難排解與自訂的資訊非常豐富。 - 免費使用
可在不增加成本的情況下,建立強大的開發環境。 - 易於自訂
可管理多個GCC版本,根據專案需求打造最佳環境。
總結
本篇文章介紹了GCC的基本概念以及在Ubuntu上使用的優勢。GCC是一款支援多種語言、可免費使用的強大編譯器,特別適合在Ubuntu環境中輕鬆安裝與使用。

2. 事前準備
更新系統與確認相依性
首先,將Ubuntu的套件資訊更新至最新狀態,以避免安裝過程中發生錯誤。
1. 更新系統至最新狀態
sudo apt update
sudo apt upgrade
sudo apt update
: 更新套件列表至最新狀態。sudo apt upgrade
: 將系統內的套件升級至最新版本。
注意事項:
- 更新過程可能需要幾分鐘時間。
- 若更新後出現「需要重新啟動」的提示,請重新啟動系統。
確認開發工具
安裝GCC前,需先確認是否具備基本的開發工具與必要的套件。執行以下指令來安裝相關套件。
sudo apt install build-essential
此指令將安裝包含GCC在內的基本開發工具。
安裝的主要套件包含:
- gcc(C編譯器)
- g++(C++編譯器)
- make(建構工具)
確認安裝狀態
要確認GCC是否安裝成功以及查看版本號,請執行以下指令:
gcc --version
範例輸出:
gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
若能看到類似的輸出結果,表示GCC已成功安裝。
事前準備總結
到目前為止,我們已完成GCC安裝前的準備工作。
- 更新系統並升級套件,使其保持最新狀態。
- 安裝必要的套件,以確保環境完整。
- 確認GCC的安裝狀態與版本。
3. 安裝GCC的步驟
基本安裝步驟
在Ubuntu上,GCC可以直接從官方套件庫安裝。請按照以下步驟進行安裝。
- 安裝 build-essential 套件
sudo apt install build-essential
這個指令會一次性安裝GCC、G++和其他必要的開發工具。
- 確認安裝過程
在安裝過程中,系統可能會詢問「是否繼續?(Y/n)」,請輸入「Y」並按Enter鍵。
確認安裝是否成功
安裝完成後,請檢查GCC的版本以確認安裝成功。
gcc --version
範例輸出:
gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
若出現類似的輸出結果,代表GCC已成功安裝。
安裝其他開發工具與函式庫
在某些情況下,單獨安裝GCC可能不夠,建議額外安裝以下套件。
- 安裝G++(C++編譯器)
sudo apt install g++
- 安裝GDB(除錯工具)
sudo apt install gdb
- 安裝開發文件與手冊
sudo apt install manpages-dev
這將讓你能夠快速查閱GCC相關的手冊與文件。
安裝失敗時的解決方案
- 若出現「找不到套件」錯誤
E: Unable to locate package build-essential
解決方案: 更新套件庫資訊後再試一次。
sudo apt update
sudo apt upgrade
- 如果出現權限錯誤
Permission denied
解決方案: 確保使用者有管理員權限,並在指令前加上 sudo
。
sudo apt install build-essential
安裝步驟總結
在這一部分,我們學習了如何在Ubuntu上安裝GCC。
- 使用
sudo apt install build-essential
輕鬆安裝GCC。 - 使用
gcc --version
確認安裝狀態。 - 根據需要安裝G++、GDB等其他開發工具。

4. GCC的基本使用方式
建立與編譯簡單程式
- 建立範例程式
讓我們建立一個簡單的「Hello, World!」程式。
nano hello.c
在開啟的編輯器中輸入以下程式碼:
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
輸入完畢後,按 Ctrl + X,然後按 Y 來儲存並退出。
編譯程式
使用GCC編譯剛剛建立的C程式。
gcc hello.c -o hello
指令解釋:
gcc
: 執行GCC編譯器。hello.c
: 要編譯的C語言程式碼。-o hello
: 指定輸出執行檔名稱為「hello」。
執行編譯後的程式
編譯完成後,執行產生的程式。
./hello
範例輸出:
Hello, World!
若出現此輸出,表示程式已成功編譯並執行。
錯誤發生時的解決方案
- 語法錯誤
錯誤訊息範例:
hello.c: In function ‘main’:
hello.c:3:5: error: expected ‘;’ before ‘return’
return 0;
解決方案: 檢查程式碼中的語法錯誤,例如是否缺少分號 ;
。
- 找不到GCC
錯誤訊息範例:
gcc: command not found
解決方案: 檢查GCC是否已安裝,若未安裝則執行以下指令:
sudo apt install build-essential
- 執行檔沒有執行權限
錯誤訊息範例:
bash: ./hello: Permission denied
解決方案: 需要賦予檔案執行權限。
chmod +x hello
./hello
最佳化編譯選項
GCC提供了最佳化選項,可以提升程式效能。
範例: 使用最佳化編譯
gcc -O2 hello.c -o hello
-O1
: 基本最佳化。-O2
: 進階最佳化,推薦使用。-O3
: 極致最佳化,適用於效能需求高的程式。
總結
在這一部分,我們學習了GCC的基本使用方式。
- 建立、編譯並執行C程式。
- 解決常見錯誤。
- 使用最佳化選項提升效能。
5. 管理多個GCC版本
安裝多個版本的GCC
在Ubuntu上,可以同時安裝多個版本的GCC,以下是安裝多個版本的方法。
- 檢查可用的GCC版本
sudo apt search gcc-
此指令將列出Ubuntu套件庫中可用的GCC版本。
範例輸出:
gcc-9 - GNU C compiler
gcc-10 - GNU C compiler
gcc-11 - GNU C compiler
- 安裝所需版本
例如,我們想安裝GCC 9和GCC 10,可以執行以下指令:
sudo apt install gcc-9 gcc-10
安裝完成後,我們可以使用不同的方法來切換GCC版本。
切換GCC版本
在Ubuntu中,可以使用update-alternatives
來切換GCC版本。
- 設定版本管理
首先,將安裝的GCC版本註冊到update-alternatives
。
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100
此設定會將GCC 10的優先級設為100,而GCC 9為90,因此GCC 10將成為預設版本。
- 手動選擇GCC版本
若要手動切換GCC版本,可以使用以下指令:
sudo update-alternatives --config gcc
範例輸出:
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-10 100 auto mode
1 /usr/bin/gcc-9 90 manual mode
2 /usr/bin/gcc-10 100 manual mode
Press <enter> to keep the current choice[*], or type selection number:
輸入所需的選項編號,然後按Enter鍵,即可切換GCC版本。
專案中使用特定GCC版本
若只想在特定專案中使用某個版本的GCC,而不影響系統的預設設定,可以使用符號連結。
- 建立專案專用的GCC連結
ln -s /usr/bin/gcc-9 ./gcc
- 使用此版本編譯程式
./gcc -o program program.c
多版本管理總結
在本章節中,我們學習了如何管理多個GCC版本。
- 可以同時安裝多個版本的GCC。
- 使用
update-alternatives
切換GCC版本。 - 可以為特定專案設定指定版本的GCC。

6. 疑難排解(Troubleshooting)
安裝時的錯誤與解決方案
錯誤1: 找不到套件
E: Unable to locate package build-essential
原因: 系統的套件列表未更新或缺少必要的套件庫。
解決方案: 執行以下指令來更新套件列表。
sudo apt update
sudo apt upgrade
sudo apt install build-essential
如果問題仍然存在,請啟用 Universe 套件庫:
sudo add-apt-repository universe
sudo apt update
編譯時的錯誤與解決方案
錯誤2: 找不到GCC
gcc: command not found
原因: GCC可能未安裝,或未正確設定。
解決方案: 確保GCC已安裝:
sudo apt install gcc
如果GCC已安裝但仍無法使用,可能需要修復符號連結:
sudo ln -s /usr/bin/gcc-10 /usr/bin/gcc
執行程式時的錯誤與解決方案
錯誤3: 沒有執行權限
bash: ./program: Permission denied
解決方案: 為檔案賦予執行權限。
chmod +x program
./program
錯誤4: 缺少共享函式庫
error while loading shared libraries: libXXX.so: cannot open shared object file: No such file or directory
解決方案: 安裝缺少的函式庫,例如:
sudo apt install libXXX-dev
版本管理相關的錯誤與解決方案
錯誤5: 切換版本後沒有變更
gcc --version
執行該指令後,仍顯示舊的GCC版本。
解決方案: 確保使用update-alternatives
切換正確的版本。
sudo update-alternatives --config gcc
如果問題仍然存在,可以手動修改符號連結:
sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
疑難排解總結
本章節涵蓋了GCC安裝與使用過程中常見的錯誤與解決方案。
- 安裝錯誤通常可透過更新套件庫解決。
- 編譯錯誤可能是GCC未安裝或符號連結有問題。
- 執行錯誤可能與權限或缺少函式庫有關。
- 版本管理錯誤可透過
update-alternatives
或手動設定符號連結來解決。
7. 常見問題(FAQ)
如何安裝最新版本的GCC?
問題:
我想安裝最新版本的GCC,但Ubuntu的官方套件庫只有較舊的版本。我該怎麼做?
解決方案:
要安裝最新版本的GCC,可以透過PPA(Personal Package Archive)來獲取更新的版本。
- 新增PPA套件庫:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
- 更新套件列表:
sudo apt update
- 安裝最新的GCC版本(例如GCC 12):
sudo apt install gcc-12
- 確認安裝版本:
gcc --version
如何移除GCC?
問題:
如果我想移除GCC,應該如何操作?
解決方案:
可以使用以下指令移除GCC:
sudo apt remove gcc
sudo apt autoremove
如果還需要移除其他相關開發工具(如build-essential):
sudo apt remove build-essential
如何解決「command not found」的錯誤?
問題:
我已經安裝了GCC,但執行 gcc --version
時出現 command not found
錯誤。
解決方案:
首先,確認GCC是否安裝:
dpkg -l | grep gcc
如果GCC未安裝,請重新安裝:
sudo apt install gcc
如果GCC已安裝但仍出錯,可能是符號連結有問題,請手動修復:
sudo ln -sf /usr/bin/gcc-10 /usr/bin/gcc
如何讓專案使用特定版本的GCC?
問題:
我希望某個專案使用特定版本的GCC,而不影響系統的預設設定。
解決方案:
可以在專案目錄內建立指向特定GCC版本的符號連結:
ln -s /usr/bin/gcc-9 ./gcc
然後,在專案內使用這個連結來編譯程式:
./gcc -o program program.c
如何修復GCC相依性錯誤?
問題:
安裝或更新GCC時,出現相依性錯誤該怎麼辦?
解決方案:
執行以下指令來修復相依性問題:
sudo apt --fix-broken install
然後重新嘗試安裝GCC:
sudo apt install gcc
FAQ 總結
在這一部分,我們解答了關於GCC的常見問題。
- 可以使用PPA安裝最新版本的GCC。
- GCC可以輕鬆移除,但需注意相關開發工具的影響。
- 若出現「command not found」錯誤,可確認安裝狀態並修復符號連結。
- 專案可使用特定版本的GCC,而不影響全系統的設定。
- 相依性錯誤可透過
sudo apt --fix-broken install
修復。

8. 總結與下一步
本文重點回顧
- GCC的基本概念與功能
- GCC是一款支援多種程式語言的強大編譯器。
- 在Ubuntu上可以輕鬆安裝,適用於開發環境建置。
- 安裝與準備工作
- 透過
sudo apt install build-essential
來快速安裝GCC。 - 檢查版本與環境,確保相依性完整。
- GCC的基本使用方式
- 編寫、編譯並執行簡單的C程式。
- 學習如何處理常見錯誤與最佳化選項。
- 多版本管理
- 使用
update-alternatives
來切換不同版本的GCC。 - 針對特定專案指定特定GCC版本。
- 疑難排解與FAQ
- 學習如何修復安裝、編譯、執行時的錯誤。
- 掌握GCC的常見問題與解決方案。
進一步學習資源
若想進一步學習GCC與開發工具,可以參考以下資源:
- Ubuntu 官方網站:提供詳細的開發環境設定指南。
- GCC 官方文件:完整的GCC編譯器說明與最佳化指南。
- Stack Overflow:解決程式開發與GCC相關問題的最佳社群。
下一步
- 應用GCC進行開發
- 開始使用GCC進行實際的C/C++開發專案。
- 學習更多進階功能
- 探索GCC的最佳化與進階選項。
結語
希望本指南能幫助你順利安裝與使用GCC,無論是初學者還是進階開發者,都能透過GCC構建強大的開發環境。