为什么有些编译器使用“a.out” 作为可执行文件的默认名称?
大多数 UNIX C 编译器默认将可执行文件链接到名为“a.out”的文件。 为什么? 这是书面标准还是事实上的标准行为? 如果这些编译器只产生错误消息(或使用不同的默认名称)而不是产生“a.out”,会出现什么问题?
Most UNIX C compilers link executables by default to a file called "a.out". Why? Is this a written standard or just de-facto standard behavior? What would break if these compilers would just produce an error message (or use a different default name) instead of producing "a.out"?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
A.out实际上是UNIX可执行文件格式的名称。 (ELF 是另一个)
如果您没有显式地为可执行文件指定名称,编译器会(按照传统)生成该名称。
不会有任何问题,但是“错误输出”是什么意思? 您的意思是,除非向链接器提供可执行文件名称,否则拒绝编译?
A.out is actually the name of an UNIX executable file format. (ELF is another)
The compiler produces that name (by tradition) if you don't give your executable a name explicitly.
Nothing would break, but what do you mean by 'error out'? Do you mean, refuse to compile unless an executable name is supplied to the linker ?
a.out 代表汇编器输出。
我认为这证明了为什么大多数编译器都将此名称作为默认名称。
更多信息此处。
a.out stands for assembler output.
I think that justifies why most compilers have this name as default.
More info here.