Windows 環境建置、測試
以下說明如何在 Windows 使用 **Cygwin + GCC** 建立 C 語言開發環境,並編譯、執行第一個 `Hello World` 程式。
---
## 一、安裝 Cygwin
### 1. 下載安裝程式
前往 Cygwin 官方網站:
<https://www.cygwin.com/>
依 Windows 系統下載:
- 64 位元 Windows:`setup-x86_64.exe`
- 32 位元 Windows:`setup-x86.exe`,目前較少使用
一般現代 Windows 都選擇 64 位元版本。
---
### 2. 執行安裝程式
啟動安裝程式後,依序選擇:
1. **Install from Internet**
2. 選擇安裝目錄,例如:
```text
C:\cygwin64
```
3. 選擇套件下載暫存目錄
4. 選擇一個下載鏡像站,例如:
```text
https://mirrors.kernel.org
```
5. 在套件選擇畫面中搜尋並安裝以下套件:
- `gcc-core`:C 編譯器
- `gcc-g++`:C++ 編譯器,可選
- `make`:建置工具,可選但建議安裝
- `gdb`:除錯器,可選
- `nano` 或 `vim`:文字編輯器,可選
在套件畫面中,點擊套件名稱旁的 `Skip`,使其變成版本號,表示將會安裝。
若只需要 C 語言,至少安裝:
```text
gcc-core
```
建議同時安裝:
```text
gcc-core
make
gdb
nano
```
6. 按照畫面完成安裝。
---
## 二、啟動 Cygwin 終端機
安裝完成後,從 Windows 開始選單啟動:
```text
Cygwin Terminal
```
會看到類似 Linux 的命令列介面,例如:
```bash
user@computer ~
$
```
Cygwin 的家目錄通常位於:
```text
C:\cygwin64\home\你的使用者名稱
```
在 Cygwin 中,Windows 磁碟機會以 `/cygdrive` 表示。例如:
| Windows 路徑 | Cygwin 路徑 |
|---|---|
| `C:\Users\Tom` | `/cygdrive/c/Users/Tom` |
| `D:\project` | `/cygdrive/d/project` |
---
## 三、確認 GCC 是否安裝成功
在 Cygwin Terminal 輸入:
```bash
gcc --version
```
若安裝成功,會看到 GCC 版本資訊,例如:
```text
gcc (GCC) 12.x.x
```
也可以檢查 `make`:
```bash
make --version
```
---
## 四、建立 Hello World 程式
### 方法一:使用 nano 編輯器
先建立一個工作目錄:
```bash
mkdir -p ~/c-project
cd ~/c-project
```
使用 `nano` 建立程式檔案:
```bash
nano hello.c
```
輸入以下程式:
```c
#include <stdio.h>
int main(void)
{
printf("Hello, World!\n");
return 0;
}
```
儲存檔案:
1. 按 `Ctrl + O`
2. 按 Enter 確認檔名
3. 按 `Ctrl + X` 離開
此時可以確認檔案是否存在:
```bash
ls
```
應該會看到:
```text
hello.c
```
---
### 方法二:使用 Windows 編輯器
也可以使用記事本或 Visual Studio Code 編輯檔案。
例如,先進入 Windows 使用者資料夾:
```bash
cd /cygdrive/c/Users/你的使用者名稱/Desktop
```
使用 Windows 編輯器開啟檔案:
```bash
notepad hello.c
```
輸入相同的 C 程式並儲存。
請注意,檔案名稱必須確實是:
```text
hello.c
```
而不是:
```text
hello.c.txt
```
---
## 五、編譯 C 程式
在 `hello.c` 所在的目錄執行:
```bash
gcc hello.c -o hello.exe
```
這個指令的意義是:
- `gcc`:呼叫 GCC 編譯器
- `hello.c`:輸入的 C 原始碼
- `-o hello.exe`:指定輸出的執行檔名稱
如果沒有錯誤,通常不會顯示任何訊息。使用 `ls` 查看檔案:
```bash
ls
```
應該會看到:
```text
hello.c
hello.exe
```
---
## 六、建議使用警告選項編譯
開發程式時,建議開啟編譯器警告:
```bash
gcc -Wall -Wextra -std=c17 hello.c -o hello.exe
```
其中:
- `-Wall`:啟用常見警告
- `-Wextra`:啟用額外警告
- `-std=c17`:使用 C17 標準
- `-o hello.exe`:指定輸出檔名
如果使用較舊版本 GCC,也可以改用:
```bash
gcc -Wall -Wextra -std=c11 hello.c -o hello.exe
```
---
## 七、執行程式
在 Cygwin 中執行目前目錄的程式,需要加上 `./`:
```bash
./hello.exe
```
輸出結果應為:
```text
Hello, World!
```
也可以使用:
```bash
./hello
```
不過在 Cygwin 環境中,建議明確使用:
```bash
./hello.exe
```
---
## 八、完整操作流程
以下是從建立目錄到執行程式的完整指令:
```bash
mkdir -p ~/c-project
cd ~/c-project
nano hello.c
```
輸入:
```c
#include <stdio.h>
int main(void)
{
printf("Hello, World!\n");
return 0;
}
```
儲存後執行:
```bash
gcc -Wall -Wextra -std=c17 hello.c -o hello.exe
./hello.exe
```
結果:
```text
Hello, World!
```
---
## 九、使用 Windows 路徑進行編譯
假設程式放在 Windows 桌面的 `c-project` 資料夾:
```text
C:\Users\Tom\Desktop\c-project
```
在 Cygwin 中可使用:
```bash
cd /cygdrive/c/Users/Tom/Desktop/c-project
gcc -Wall -Wextra hello.c -o hello.exe
./hello.exe
```
請將 `Tom` 改成自己的 Windows 使用者名稱。
---
## 十、常見問題
### 1. `gcc: command not found`
表示 GCC 尚未安裝,或安裝時沒有選取 `gcc-core`。
解決方法:
1. 再次執行 Cygwin 安裝程式
2. 選擇與原本相同的安裝目錄
3. 在套件選擇畫面搜尋:
```text
gcc-core
```
4. 將它從 `Skip` 改成版本號
5. 完成安裝後重新開啟 Cygwin Terminal
---
### 2. 執行時出現 `Permission denied`
先確認檔案可以執行:
```bash
chmod +x hello.exe
./hello.exe
```
通常使用 GCC 產生的 `.exe` 檔案在 Cygwin 中可以直接執行。
---
### 3. 找不到 `hello.c`
先查看目前所在目錄:
```bash
pwd
```
查看目前目錄的檔案:
```bash
ls
```
如果看不到 `hello.c`,請使用 `cd` 切換到正確目錄,或確認檔案是否被儲存成 `hello.c.txt`。
---
### 4. Windows 直接雙擊程式
Cygwin GCC 產生的程式通常可以在 Windows 中執行,但可能需要 Cygwin 的執行函式庫,例如:
```text
cygwin1.dll
```
因此,最穩定的方式是在 Cygwin Terminal 中執行:
```bash
./hello.exe
```
如果希望產生不依賴 Cygwin DLL 的原生 Windows 執行檔,可以考慮使用 **MinGW-w64**,但那與一般的 Cygwin GCC 環境不同。
---
## 十一、確認編譯是否成功
可使用以下指令檢查輸出檔:
```bash
file hello.exe
```
可能會看到類似:
```text
hello.exe: PE32+ executable
```
也可以查看程式的退出狀態:
```bash
./hello.exe
echo $?
```
若顯示:
```text
0
```
通常表示程式正常結束。
相關學習地圖、教學課程
C 語言,系統程式