可執行檔案格式

2021-06-28 08:40:56 字數 1008 閱讀 9189

測試平台:在windows下使用gcc編譯c檔案。

gcc的幾個用法:

每一步單獨處理:

gcc -e main.c -o main.i  :將main.c預處理

gcc -s main.i -o main.s :將預處理的main.i檔案轉換成彙編檔案main.s

gcc -c main.s -o main.o :將彙編檔案main.s轉換成目標檔案main.o

gcc main.o -o main:將目標檔案main.o轉換成可執行檔案main.exe

也可以使用gcc直接將c檔案轉換到上面中的某一步。

gcc -e main.c -o main.i  :預處理

gcc -s main.c -o main.s :生成彙編檔案

gcc -c main.c  -o main.o :生成目標檔案

gcc main.c -o main:生成可執行檔案

gcc -lm main.c:不需要手動指定生成的可執行檔案的名稱,無論指定怎樣的的c檔名,統一會生成a.exe檔案(感覺和a.out檔案是等同的?)

nm命令可以用來檢視目標檔案(.o檔案)和可執行檔案(.exe檔案)中的符號表。本質上講目標檔案和可執行檔案的檔案格式是一樣的。

size命令可以用來檢視檔案中各個段的大小。

下面是針對int型變數和陣列做的兩個測試:

int變數測試:

陣列測試:

指標和陣列:

可執行檔案格式elf和bin

常用的可執行檔案包含兩類 原始二進位制檔案 bin 和可載入執行的二進位制檔案,在linux中可載入執行的二進位制檔案為elf檔案。在linux os上,為了執行可執行檔案,他們是遵循elf格式的,通常gcc o test test.c,生成的test檔案就是elf格式的。執行elf檔案時核心會使用...

可執行檔案格式elf和bin

常用的可執行檔案包含兩類 原始二進位制檔案 bin 和可載入執行的二進位制檔案,在linux中可載入執行的二進位制檔案為elf檔案。在linux os上,為了執行可執行檔案,他們是遵循elf格式的,通常gcc o test test.c,生成的test檔案就是elf格式的。執行elf檔案時核心會使用...

可執行檔案格式詳述,ABI和loader

上回書說到可執行檔案的格式,這一節詳細描述一下。可執行檔案是由頭和體組成的。這跟別的複雜一點的檔案一樣。它的體分成一些叫做節 section 的東西,這是它的特色。另外比較有特色的東西是 我們一般把可執行檔案叫做程式的影像 image 唔,這個叫法也不賴。可執行檔案的價值在於執行,執行的程式也就是活...