使用 gcc 編譯程式
撰寫程式
在 C:\test 資料夾底下新增一個文字檔 hello.c,並且輸入以下程式碼:
#include <stdio.h>
int main() {
printf("Hello, World");
return 0;
}
如果要 MSYS2 的 Shell 內要切換到C槽,在MSYS2內的對應目錄為 /c
所以切換到 C:\test
底下則必須輸入:
cd /c/test
編譯程式
使用 gcc 來編譯剛才寫好的程式
gcc -o hello hello.c
執行程式
./hello
如果看到這樣的結果就知道成功了!
P.S. 注意執行的時候要使用「./
」代表的是自己目錄底下的執行檔,因為 C:\test 並沒有加入系統的 PATH 環境變數(也不建議加入)。
不同 Shell 環境下編譯
假設我們使用剛才提供的方式,並且開啟三個不同的 Shell 編譯同一個程式碼,但是指定不同的檔案名稱:
- 在 MSYS2 Shell 中編譯:
gcc -o hello hello.c
- 在 MinGW-w64 Win32 Shell 中編譯:
gcc -o hello32 hello.c
- 在 MinGW-w64 Win64 Shell 中編譯:
gcc -o hello64 hello.c
這樣會產生三個檔案 hello.exe hello32.exe hello64.exe,我們還可以使用 file
指令分辨產生出來的二進位檔(執行檔)是屬於哪個版本的 Shell 編譯出來的。
雖然這裡 hello 和 hello64 使用 file
命令看不出差異,但所編譯出來的檔案大小是差很多的(編譯成64位元的佔用容量較大)。
佈署
基本上32位元和64位元的執行檔都可以直接佈署到新電腦上執行(不過如果作業系統是32位元的,是沒辦法執行64位元的執行檔喔!)
還記得前面的章節有提到 MSYS2 Shell 會依賴 msys-2.0.dll 嗎?
如果不使用 MSYS2,而是使用 Windows 內建的「命令提示字元」來執行 MSYS2 編譯出來的程式是會無法執行的。
不過一般來說並不會使用 MSYS2 Shell 來編譯程式並佈署在 Windows 上面使用,所以不用擔心這個問題。
您可以開始進行 C 語言程式開發了,而 C++ 的話是要使用g++
的指令,後面的章節再來介紹如何使用。