GCC(GNU Compiler Collection)是一個廣泛使用的編譯器,它支持多種編程語言,如C、C++、Objective-C、Fortran等
-o:指定輸出文件名。例如,gcc -o output_file source_file.c將編譯source_file.c并生成名為output_file的可執行文件。-c:僅編譯源代碼文件,不進行鏈接。這將生成一個目標文件(擴展名為.o),稍后可以將其與其他目標文件鏈接在一起。-g:在編譯時包含調試信息。這對于使用調試器(如GDB)調試程序非常有用。-Wall:顯示所有警告信息。這有助于發現潛在的編程錯誤和問題。-O或-O1、-O2、-O3:設置優化級別。-O或-O1表示基本優化,-O2表示更高級的優化,而-O3表示最高級的優化。優化可以提高程序運行速度,但可能會增加編譯時間。-I:指定頭文件搜索路徑。例如,gcc -I/path/to/headers source_file.c將在/path/to/headers目錄中搜索頭文件。-L:指定庫文件搜索路徑。例如,gcc -L/path/to/libraries source_file.c -lmylibrary將在/path/to/libraries目錄中搜索名為libmylibrary.a或libmylibrary.so的庫文件。-l:鏈接指定的庫文件。例如,gcc source_file.c -lm將鏈接數學庫(libm.a或libm.so)。-D:定義預處理器宏。例如,gcc -DDEBUG source_file.c將定義名為DEBUG的宏,可以在源代碼中使用#ifdef DEBUG等條件編譯指令進行條件編譯。-E:僅執行預處理操作,不進行編譯。這將生成一個包含預處理結果的文件,通常以.i或.ii為擴展名。-S:將源代碼編譯為匯編代碼,而不進行鏈接。這將生成一個包含匯編代碼的文件,通常以.s為擴展名。-shared:生成共享庫(動態庫)而不是可執行文件。例如,gcc -shared -o libmylibrary.so mylibrary.c將生成名為libmylibrary.so的共享庫。-static:靜態鏈接庫文件。默認情況下,GCC會動態鏈接庫文件。使用此選項可以強制靜態鏈接庫文件。-fPIC:生成位置無關代碼(Position Independent Code)。這對于創建共享庫非常有用,因為共享庫需要能夠在內存中的任意位置加載。這些選項和參數只是GCC命令的一部分,更多選項和參數可以在GCC手冊中找到。在使用GCC時,請確保根據實際需求選擇合適的選項和參數。