2009-08-02 1 views
23

Большинство компиляторов UNIX C связывают исполняемые файлы по умолчанию с файлом, называемым «a.out». Зачем? Является ли это письменным стандартом или просто де-факто стандартным поведением? Что бы сломалось, если бы эти компиляторы просто произвели сообщение об ошибке (или использовали другое имя по умолчанию) вместо создания «a.out»?Почему некоторые компиляторы используют «a.out» в качестве имени по умолчанию для исполняемых файлов?

+0

У вас есть идея лучше? :) –

ответ

35

a.out означает выход ассемблера.
Я думаю, это оправдывает, почему большинство компиляторов имеют это имя по умолчанию. Дополнительная информация here.

+2

a.out также является именем исполняемого файла. Делает для красивого удобного имени файла 8.3, хотя. –

+2

'a.out' не был стандартным исполняемым форматом по умолчанию более десятилетия. В эти дни используется «ELF» (исполняемый формат связи). –

5

A.out на самом деле является именем исполняемого файла UNIX. (ELF - другое)

Компилятор создает это имя (по традиции), если вы не указали свое исполняемое имя явно.

Что бы сломаться, если эти компиляторы просто ошибка вне вместо производства «a.out»?

Ничего не сломалось, но что вы подразумеваете под «ошибкой»? Вы хотите отказаться от компиляции, если в компоновщик не добавлено имя исполняемого файла?