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