大多數UNIX C編譯器默認將可執行文件鏈接到名爲「a.out」的文件。爲什麼?這是一個書面標準還是隻是事實上的標準行爲?如果這些編譯器只會產生一條錯誤消息(或使用不同的默認名稱)而不是產生「a.out」,會破壞什麼?爲什麼有些編譯器使用「a.out」作爲可執行文件的默認名稱?
23
A
回答
35
a.out表示彙編輸出。
我認爲這證明了爲什麼大多數編譯器有這個名字作爲默認值。 更多信息here。
+2
a.out也是可執行格式的名稱。儘管如此,仍然可以獲得一個不錯的8.3文件名。 – 2009-08-02 07:16:48
5
A.out實際上是UNIX可執行文件格式的名稱。 (ELF是另一個)
如果您沒有明確地給您的可執行文件指定名稱,編譯器將生成該名稱(按傳統)。
什麼會打破,如果這些編譯 只想出錯誤,而不是 生產「的a.out」?
什麼都不會打破,但是你說'錯誤'是什麼意思?你的意思是,拒絕編譯,除非一個可執行文件名被提供給鏈接器?
相關問題
- 1. 編譯C++文件時爲什麼命名爲「a.out」?
- 2. 使可執行文件不被命名爲a.out?
- 3. 爲什麼Visual C++編譯器將未使用的類編譯爲可執行文件?
- 4. 爲什麼CMake拒絕使用非默認編譯器?
- 5. 爲什麼我的python可執行文件不默認爲/ usr/local/bin?
- 6. 爲什麼Xcode 5助手編輯器默認爲.m文件
- 7. SqlCipher編譯爲Win可執行文件
- 8. Flex - 使用「-lfl」庫編譯並鏈接lex.yy.c以生成可執行文件a.out
- 9. 爲什麼在某些默認MVC操作中id可爲空?
- 10. 爲什麼Closure編譯器不能用某些名稱重命名對象?
- 11. 爲什麼源文件的名稱會影響編譯?
- 12. 爲什麼編譯器不提供默認的operator =模板類?
- 13. 爲OS X編譯的Golang可執行文件擴展名
- 14. 爲什麼編譯器認爲我沒有爲矢量var命名類型?
- 15. 爲什麼編譯器認爲Environment.Exit可以返回?
- 16. 爲什麼常量性沒有編譯器執行
- 17. 爲默認的服務器名稱
- 18. 編譯器爲什麼說沒有名稱爲<NUMBER>的組?
- 19. 爲什麼Reduux在Redux中默認稱爲默認值?
- 20. Python - 作爲獨立可執行文件編譯/保護
- 21. 爲什麼編譯器(或運行時)沒有爲我執行InvokeRequired模式?
- 22. 如何爲另一臺機器編譯Linux可執行文件?
- 23. 使用Roslyn編譯器作爲服務有什麼好處
- 24. Python 3.6沒有模塊名爲'gspread' - pyinstaller編譯的可執行文件
- 25. 爲什麼我們在`execlp`中聲明可執行文件的名稱?
- 26. 爲什麼編譯器在重載時停止名稱查找?
- 27. 爲什麼在Scala中爲var分配默認值可防止編譯錯誤?
- 28. 爲什麼xcode的默認編譯輸出不在項目文件夾中?
- 29. 更改BJam中的gcc編譯器可執行文件名
- 30. 依靠默認編碼,我應該使用什麼,爲什麼?
你有個更好的主意嗎? :) – 2009-08-02 06:12:08