Linux 環境建置、測試
以下以常見的 Linux 發行版為例,說明如何建立 C 語言開發環境,並編譯、執行第一個 Hello World 程式。
## 1. 安裝 C 編譯工具
### Ubuntu、Debian、Linux Mint
```bash
sudo apt update
sudo apt install build-essential
```
`build-essential` 通常包含:
- GCC 編譯器
- `make`
- C 標準函式庫與標頭檔
- 其他基本編譯工具
確認 GCC 是否安裝成功:
```bash
gcc --version
```
若能看到版本資訊,例如:
```text
gcc (Ubuntu ...) ...
```
就表示安裝成功。
### Fedora、Rocky Linux、AlmaLinux
```bash
sudo dnf group install "Development Tools"
```
也可以單獨安裝 GCC:
```bash
sudo dnf install gcc make
```
### Arch Linux
```bash
sudo pacman -S base-devel
```
---
## 2. 準備文字編輯器
可以使用以下任一編輯器:
```bash
sudo apt install vim
```
或:
```bash
sudo apt install nano
```
如果使用圖形介面,也可以使用 Visual Studio Code、Geany 等編輯器。
以下示範使用 `nano`。
---
## 3. 建立 Hello World 程式
建立一個工作目錄:
```bash
mkdir -p ~/c-projects/hello
cd ~/c-projects/hello
```
建立原始碼檔案:
```bash
nano hello.c
```
輸入以下內容:
```c
#include <stdio.h>
int main(void)
{
printf("Hello, World!\n");
return 0;
}
```
說明:
- `#include <stdio.h>`:引入標準輸入輸出函式庫。
- `main`:C 程式的進入點。
- `printf`:在終端機輸出文字。
- `\n`:換行。
- `return 0`:表示程式正常結束。
在 `nano` 中:
1. 按 `Ctrl + O` 儲存
2. 按 Enter 確認檔名
3. 按 `Ctrl + X` 離開
確認檔案存在:
```bash
ls
```
應該會看到:
```text
hello.c
```
---
## 4. 編譯 C 程式
使用 GCC 編譯:
```bash
gcc hello.c -o hello
```
這個指令的意思是:
- `gcc`:使用 GCC 編譯器
- `hello.c`:輸入的 C 原始碼
- `-o hello`:將輸出的執行檔命名為 `hello`
如果編譯成功,目錄中會產生一個名為 `hello` 的執行檔:
```bash
ls
```
可能看到:
```text
hello
hello.c
```
---
## 5. 執行程式
Linux 執行目前目錄中的程式時,需要加上 `./`:
```bash
./hello
```
輸出結果:
```text
Hello, World!
```
---
## 6. 使用較嚴格的編譯選項
建議平常編譯時啟用警告:
```bash
gcc -Wall -Wextra -std=c17 hello.c -o hello
```
各選項功能:
- `-Wall`:啟用常見警告
- `-Wextra`:啟用更多警告
- `-std=c17`:使用 C17 標準
- `-o hello`:指定執行檔名稱
也可以在除錯時加入除錯資訊:
```bash
gcc -Wall -Wextra -std=c17 -g hello.c -o hello
```
---
## 7. 常見問題
### 找不到 `gcc`
若出現:
```text
gcc: command not found
```
表示尚未安裝編譯器。請依照發行版執行安裝指令,例如 Ubuntu:
```bash
sudo apt update
sudo apt install build-essential
```
### 執行時出現 Permission denied
通常是直接輸入檔名造成的,應使用:
```bash
./hello
```
若仍無法執行,可以確認權限:
```bash
ls -l hello
```
必要時加入執行權限:
```bash
chmod +x hello
```
### 編譯時出現錯誤
請確認:
- 檔名是否正確,例如 `hello.c`
- 程式中的括號、分號是否完整
- 編譯指令是否在正確的目錄中執行
完整流程如下:
```bash
mkdir -p ~/c-projects/hello
cd ~/c-projects/hello
nano hello.c
gcc -Wall -Wextra -std=c17 hello.c -o hello
./hello
```
執行後應看到:
```text
Hello, World!
```
相關學習地圖、教學課程
C 語言,系統程式