[英]generating a.out file format with gcc
如何在 x86 架構上使用 gcc 生成 a.out 文件格式?
使用 nasm 我可以使用 -f 標志輕松完成此操作,例如:
[user@host]$ nasm -f aout start.asm
[user@host]$ objdump -a start.o
start.o: file format a.out-i386-linux
start.o
[user@host]$
在 linux 上,編譯 .c 文件會生成一個 elf 對象。 如何使用 gcc 生成 a.out 文件?
要使用gcc生成a.out格式,需要告知鏈接器這樣做。 你可以通過從gcc傳遞標志來實現它,這要歸功於-Wl
標志。
以下是您為a.out格式所做的事情:
gcc -Wl,--oformat=a.out-i386-linux file.c -o file.out
您還可以通過鍵入來顯示所有支持的格式:
objdump -i
這個問題有兩個答案。 一個是你需要編譯一個以aout為目標的新GCC; 它並不像翻轉命令行開關那么簡單。 另一個答案是一個問題:為什么你真的需要這個? 我無法立即想到一個有效的理由。
根據這篇文章http://gcc.gnu.org/ml/gcc-help/2006-04/msg00262.html
你需要為不同的目標(i386-aout)構建gcc。 聽起來似乎有道理,因為a.out已被棄用多年(10+)。
gcc 的默認名稱將為您的可執行運行命令的 a.out
gcc filename.c
上面的命令將創建一個 a.out 文件,它是你的程序的可執行文件
gcc -c filename.c -g
使用 -g ,它將創建啟用調試的文件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.