为什么有些编译器使用"a.out"作为可执行文件的默认名称?

Vil*_*ari 25 c unix compiler-construction history

大多数UNIX C编译器默认情况下将可执行文件链接到名为"a.out"的文件.为什么?这是书面标准还是事实上的标准行为?如果这些编译器只生成错误消息(或使用不同的默认名称)而不是生成"a.out",会破坏什么?

sud*_*03r 39

a.out代表汇编程序输出.
我认为这证明了为什么大多数编译器都将此名称作为默认名称.更多信息在这里.

  • a.out也是可执行格式的名称.虽然有一个非常方便的8.3文件名. (2认同)
  • 十多年来,`a.out`一直不是默认的可执行格式.这些天使用`ELF`(可执行链接格式). (2认同)

Dav*_*esh 6

A.out实际上是UNIX可执行文件格式的名称.(ELF是另一个)

如果您没有明确地为可执行文件命名,则编译器会生成该名称(按传统).

如果这些编译器只是错误而不是产生"a.out"会破坏什么?

什么都不会破坏,但你的错误是什么意思?你的意思是,除非为链接器提供可执行文件名,否则拒绝编译?