gcc使用和簡要makefile

2021-07-15 05:20:12 字數 3175 閱讀 8415

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...