GCC 的編譯過程及編譯工具

2021-10-24 20:50:45 字數 1508 閱讀 1818

nasm的安裝與使用

總結本文講解了gcc的編譯過程,預處理、編譯、彙編和連線。還有編譯工具nasm的使用。

#include

intmain

(void

)

預處理語句:

gcc -e hello.c -o hello.i
hello.i檔案內容:

gcc -s hello.i -o hello.s
hello.s檔案內容:

gcc -c hello.s -o hello.o
形成目標檔案(.o檔案)

gcc hello.c -o hello
鏈結形成可執行檔案(.exe檔案)

鏈結形成可執行檔案(.exe檔案)

示例:pandas 是基於numpy 的一種工具,該工具是為了解決資料分析任務而建立的。

elf 檔案的段

readelf -s hello
反彙編elf

objdump -d hello
使用objdump -s 將其反彙編並且將其c 語言源**混合顯示出來:

gcc -o hello -g hello.c //要加上-g 選項

objdump -s hello

再將資料夾複製到虛擬機器中,然後執行命令:

.

/configure

make

sudo make install

hello.asm原始碼參考

編譯:

nasm -f elf64

(elf32) hello.

asm

gcc -no-pie -o hello hello.o
輸出結果如圖所示:

通過本次學習,基本清楚了編譯的整個過程,包括預處理、編譯、彙編和鏈結這四個過程。安裝nasm之後,可以直接對.asm檔案進行編譯。

gcc簡介及編譯過程

1 編譯器 gcc 簡介 linux系統下的 gcc gnu c compiler 是gnu推出的功能強大 效能優越的多 平台編譯器,它是gnu的代表作品之一,gcc是可以在多種硬體平台上編譯出可 執行檔案的超級編譯器,其執行效率比一般的編譯器要高出20 30 編譯器能 將c c 語言源程式 組合語...

gcc編譯過程

本文對gcc編譯器如何工作做乙個概要描述.更為詳細的資訊請參考編譯器手冊。當我們進行編譯的時候,要使用一系列的工具,我們稱之為工具鏈.其中包括 預處理器cpp,編譯器前端gcc g 彙編器as,聯結器ld.乙個編譯過程包括下面幾個階段 1 預處理。預處理器cpp將對原始檔中的巨集進行展開。2 編譯。...

gcc編譯過程

當我們進行編譯的時候,要使用一系列的工具,我們稱之為工具鏈.其中包括 預處理器cpp,編譯器前端gcc g 彙編器as,聯結器ld.乙個編譯過程包括下面幾個階段 1 預處理。預處理器cpp將對原始檔中的巨集進行展開。2 編譯。gcc將c檔案編譯成彙編檔案。3 彙編。as將彙編檔案編譯成機器碼。4 連...