GCC編譯步驟/查看編譯後的可執行文件依賴庫

GCC編譯過程

C代碼編譯成可執行程序經過4步:

  1. 預處理:宏定義展開、頭文件展開、條件編譯等,同時將代碼中的註釋刪除,這裏並不會檢查語法
  2. 編譯:檢查語法,將預處理後文件編譯生成彙編文件
  3. 彙編:將彙編文件生成目標文件(二進制文件)
  4. 鏈接:C語言寫的程序是需要依賴各種庫的,所以編譯之後還需要把庫鏈接到最終的可執行程序中去

分步編譯

  • 預處理:gcc -E hello.c -o hello.i
  • 編 譯:gcc -S hello.i -o hello.s
  • 匯 編:gcc -c hello.s -o hello.o
  • 鏈 接:gcc hello.o -o hello_elf
選項 含義
-E 只進行預處理
-S(大寫) 只進行預處理和編譯
-c(小寫) 只進行預處理、編譯和彙編
-o file 指定生成的輸出文件名爲 file
文件後綴 含義
.c C 語言文件
.i 預處理後的 C 語言文件
.s 編譯後的彙編文件
.o 編譯後的目標文件

查找文件所需的依賴庫

  • ldd 可執行程序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章