Почему некоторые компиляторы используют «a.out» в качестве имени по умолчанию для исполняемых файлов? - PullRequest
24 голосов
/ 02 августа 2009

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

Ответы [ 2 ]

37 голосов
/ 02 августа 2009

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

5 голосов
/ 02 августа 2009

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

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

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

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

...