簡體   English   中英

用gcc生成a.out文件格式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM