1.編譯過程
a.預處理(進行巨集替換)--
b.編譯(生成彙編)--檢查**的規範性,是否有語法錯誤
c.彙編(生成機器可識別**)
d.連線(生成可執行檔案或庫檔案)
gcc -e hello.c -o hello.i
1.-o 生成目標檔案
2.-e 只進行預處理階段 生成.i檔案
[wyg@bogon mkfile]$ gcc -e test.c -o test.i
[wyg@bogon mkfile]$ ll
total 28
-rw-rw-r--. 1 wyg wyg 65 jul 18 07:43 makefile
-rw-rw-r--. 1 wyg wyg 105 jul 18 07:45 test.c
-rw-rw-r--. 1 wyg wyg 17236 jul 18 23:11 test.i
[wyg@bogon mkfile]$
gcc -s hello.i -o hello.s
1.-s只進行編譯 生成彙編**
[wyg@bogon mkfile]$ gcc -s test.i -o test.s
[wyg@bogon mkfile]$ ll
total 32
-rw-rw-r--. 1 wyg wyg 65 jul 18 07:43 makefile
-rw-rw-r--. 1 wyg wyg 105 jul 18 07:45 test.c
-rw-rw-r--. 1 wyg wyg 17236 jul 18 23:21 test.i
-rw-rw-r--. 1 wyg wyg 457 jul 18 23:21 test.s
[wyg@bogon mkfile]$
gcc -c hello.s -o hello.o
1.-c 將.s檔案轉成.o的二進位制目標**
[wyg@bogon mkfile]$ gcc -c test.s -o test.o
[wyg@bogon mkfile]$ ll
total 36
-rw-rw-r--. 1 wyg wyg 65 jul 18 07:43 makefile
-rw-rw-r--. 1 wyg wyg 105 jul 18 07:45 test.c
-rw-rw-r--. 1 wyg wyg 17236 jul 18 23:21 test.i
-rw-rw-r--. 1 wyg wyg 884 jul 18 23:22 test.o
-rw-rw-r--. 1 wyg wyg 457 jul 18 23:21 test.s
[wyg@bogon mkfile]$
gcc test.o -o test --生成test可執行檔案
使用autotools生成makefile
接下來就要正式步驟 1,autoscan 生成了一乙個configure.scan檔案。編輯它,增加巨集宣告 am init automake hello,1.0 和ac config files makefile 然後儲存為configure.ac。其實configure.scan就是乙個模板。p...
gcc編譯與gdb除錯簡要步驟
gcc編譯過程主要的4個階段 l 預處理階段,完成巨集定義和include檔案展開等工作 i l 根據編譯引數進行不同程度的優化,編譯成彙編 s.s l 用彙編器把彙編 進一步生成目標 o l 用聯結器把生成的目標 和系統或使用者提供的庫連線起來,生成可執行檔案 格式 l gcc e test.c ...
使用GCC和G 編譯
1 編譯c檔案 main.c檔案內容如下 include int main printf hello world return 0 然後進行編譯 gcc o 目標名 c語言檔名如 deepfuture deepfuture desktop gcc o dp main.c deepfuture dee...