GCC 是 GNU Compiler Collection 的縮寫,是一個用于編程語言的編譯器,支持多種語言如 C、C++、Fortran、Objective-C、Ada、Go 等。它最初是為 GNU 操作系統開發的,但如今已被廣泛應用于各種 Unix-like 系統(包括 Linux)和其他操作系統(如 Windows,通過 MinGW 或 Cygwin)。
sudo apt update
sudo apt install build-essential
gcc --version
GCC 編譯器的編譯流程主要分為四個步驟:預處理、編譯、匯編和鏈接。
創建一個名為 hello.c
的文件,內容如下:
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
編譯該文件:
gcc hello.c -o hello
運行生成的可執行文件:
./hello
輸出應該是:
Hello, World!
-c
:只編譯不鏈接為可執行文件,生成目標文件(.o
文件)。-o
:指定輸出文件名,默認為 a.out
。-O1
:啟用基本的優化。-O2
:啟用更多的優化。-O3
:啟用最高的優化級別。-g
:生成調試信息,便于調試。-Wall
:顯示所有警告信息。-Wextra
:顯示額外的警告信息。分步編譯可以幫助更好地理解編譯器的工作流程,并且具有更高的靈活性。
編譯源程序文件:
gcc -c main.c -o main.o
鏈接目標文件:
gcc main.o -o main
Makefile 使得多文件項目的編譯更加方便。以下是一個簡單的 Makefile 示例:
main: main.o input.o calcu.o
gcc main.o input.o calcu.o -o main
main.o: main.c
gcc -c main.c
input.o: input.c
gcc -c input.c
calcu.o: calcu.c
gcc -c calcu.c
clean:
rm *.o main
make
命令編譯項目在項目目錄下運行以下命令:
make
make
命令會根據 Makefile 中的規則自動編譯和鏈接項目。
安裝 GDB:
sudo apt install gdb
在終端中使用以下命令調試程序:
gdb ./main
在 GDB 中設置斷點、單步執行、查看變量等。