GCC是GNU Compiler Collection(Linux的C編譯器)的縮寫。
$ gcc [options] [source files] [object files] [-o output file]
GCC主要選項:
選項 | 描述 |
---|---|
gcc -c | 無需鏈接即可將源文件編譯為目標文件 |
gcc -Dname[=value] | 定義預處理器宏 |
gcc -fPIC | 為共享庫生成位置無關的代碼 |
gcc -glevel | 生成調試信息以供GDB使用 |
gcc -Idir | 添加頭文件的包含目錄 |
gcc -llib | 與庫文件鏈接 |
gcc -Ldir | 在目錄中查找庫文件 |
gcc -o output file | 將構建輸出寫入輸出文件 |
gcc -Olevel | 優化代碼大小和執行時間 |
gcc -shared | 生成共享庫的共享對象文件 |
gcc -Uname | 取消定義預處理器宏 |
gcc -w | 禁用所有警告消息 |
gcc -Wall | 啟用所有警告消息 |
gcc -Wextra | 啟用額外的警告消息 |
編譯file1.c和file2.c並鏈接到輸出文件execfile:
$ gcc file1.c file2.c -o execfile
運行輸出文件execfile:
$ ./execfile
無需鏈接即可編譯file1.c和file2.c:
$ gcc -c file1.c file2.c
使用調試信息編譯myfile.c並鏈接到輸出文件execfile:
$ gcc -g myfile.c -o execfile
在啟用警告消息的情況下編譯myfile.c並鏈接到輸出文件execfile:
$ gcc -Wall myfile.c -o execfile
編譯myfile.c文件與和鏈接與靜態庫libmath.a位於/用戶/本地/數學到輸出文件的execfile:
$ gcc -static myfile.c -L/user/local/math -lmath -o execfile
通過優化編譯myfile.c並鏈接到輸出文件execfile:
$ gcc -O myfile.c -o execfile