создание формата файла a.out с помощью gcc - PullRequest
7 голосов
/ 29 ноября 2011

Как сгенерировать формат файла a.out с помощью gcc на архитектурах x86?

С помощью 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.Как я могу создать файлы .out с помощью gcc?

Ответы [ 3 ]

12 голосов
/ 29 ноября 2011

Чтобы создать формат a.out с помощью gcc, ваш компоновщик должен получить указание сделать это. Вы можете сделать это, передав ему флаги из gcc благодаря -Wl flag.

Вот что вы бы сделали для формата a.out:

gcc -Wl,--oformat=a.out-i386-linux file.c -o file.out

Вы также можете отобразить все поддерживаемые форматы, набрав:

objdump -i
0 голосов
/ 29 ноября 2011

Согласно этому посту http://gcc.gnu.org/ml/gcc-help/2006-04/msg00262.html

вам нужно собрать gcc для другой цели (i386-aout).Звучит правдоподобно, поскольку a.out устарела в течение многих лет (10+).

0 голосов
/ 29 ноября 2011

Есть два ответа на этот вопрос.Во-первых, вам нужно скомпилировать свежий GCC с целью aout;это не так просто, как переключение командной строки.Другой ответ - вопрос: зачем вам это нужно?Я не могу сразу придумать вескую причину.

...