-g,生成供調試用的可執行文件,可以在gdb中運行。由於文件中包含了調試信息因此運行效率很低,且文件也大不少。
-c:生成名為source_file.o的目標文件。
-o, 指定輸出文件名,可以配合以上三種標簽使用。
-S:生成名為source_file.s的匯編代碼
-O(大寫的字母O),編譯器對代碼進行自動優化編譯,輸出效率更高的可執行文件。
-O 后面還可以跟上數字指定優化級別,如:
gcc -O2 source_file.c
數字越大,越加優化。
-W
打印一些額外的警告信息。
-w
禁止顯示所有警告信息。
-l, 指定所使用到的函數庫,本例中鏈接器會嘗試鏈接名為libxxx.a的函數庫。
-L,指定函數庫所在的文件夾,本例中鏈接器會嘗試搜索/path/to/lib文件夾。
-I, 指定頭文件所在的文件夾,本例中預編譯器會嘗試搜索/path/to/include文件夾。
-Dname
預定義一個名為name 的宏,值為1。
例子: $ gcc -DTEST_CONFIG test.c -o test
-Dname =definition
預定義名為name ,值為definition 的宏。