gcc的一些重要引數
1. -i 指定標頭檔案搜尋路徑(i 表include)
如 $gcc -c hello.c -o hello.o -i/usr/include
2.-l 指定要連線的庫所在的目錄
-l 指定要連線的庫的名字
如$gcc main.o -l/usr/lib -lqt -o hello
3. -d 定義巨集(d-define)
-d定義巨集有兩種情況,一種是 -dmacro 相當於程式中使用#define macro 另外可
以-dmacro=a 相當於程式中使用#define macro a 這只是乙個編繹引數,在連線時沒有
意義如: $gcc -c hello.c -o hello.o -ddebug
上面為 hello.c定義了乙個debug巨集,某些情況下使用-d 代替直接在檔案中使用
#define,也是為了避免修改源**雙。例如乙個程式希望 在開發除錯的時候能列印出
除錯資訊,而正式發布的時候就不用列印了,而且發布前不用修改源**雙。可以這樣
#ifdefine debug
printf("debug message/n");
#endif
對於這段**,平時除錯的時候就加上 -ddebug 發布時不用-d選項
與之對應的是-umacro引數,相當於#undef macro,取消巨集定義
4. -g 生成除錯資訊
-g生成除錯資訊,這對使用gdb進行除錯是必須的。帶有除錯資訊的檔案要比普通檔案
要大,但不影響執行,可以用strip 命令除於其中的除錯資訊
5. -c指於gcc只進行編繹,不連線
6. -ansi 指示gcc只支援ansi c標準語法
7. -o 指定輸出檔名
8. -o 指定優化處理
-o0不優化 -o1或-o 一級優化 -o2 二級優化...-o3,-o4
級別越高,,**越優,編繹時間越長。
9. -m486 針對特定的目標計算機進行優化,預設是386
10. -w 關閉編譯器警告資訊
gcc常用引數
今晚看了些有關gcc的編譯選項的內容,記錄下來以備查用。1 gcc c 只編譯不鏈結,生成.o檔案。例如,gcc c hello.c,將由hello.c得到hello.o 2 gcc o直接得到可執行檔案,並且可以指定可執行檔的名稱。例如,gcc o hello hello.c,將由hello.c得...
gcc常用引數
o file 指定輸出檔名,在編譯為目標 時,這一選項不是必須的。如果file沒有指定,預設檔名是a.out.c 只編譯不鏈結 dfoo bar 在命令列定義預處理巨集foo,其值為bar idirname 將dirname加入到頭檔案的搜尋目錄列表中 ldirname 將dirname加入到庫檔案...
gcc常用引數
gcc e source file.c e,只執行到預編譯。直接輸出預編譯結果。gcc s source file.c s,只執行到源 到彙編 的轉換,輸出彙編 gcc c source file.c c,只執行到編譯,輸出目標檔案。gcc e s c source file.c o output ...