Ich benutze den Clang-Compiler und immer verwirrt zwischen einer Assembly-Datei (.s), Objektdatei (.o) und Binärdatei (.bc). Kann jemand ihren Unterschied erklären?Was ist der Unterschied zwischen einer Assemblydatei, einer Objektdatei und einer Binärdatei?
0
A
Antwort
1
Eine Assemblydatei (.s) enthält Maschinenanweisungen in einer für Menschen lesbaren Form, die als Assemblersprache bezeichnet wird. Eine Objektdatei enthält die gleichen Anweisungen in maschinenlesbarer, binärer Form. Assembly-Dateien können vom Assembler (as) in Objektdateien übersetzt werden.
Eine LLVM-Bitcodedatei (.bc) enthält LLVM-Anweisungen in binärer Form. Er kann vom LLVM-Compiler (llc) in Maschinencode übersetzt oder direkt mit dem LLVM-Interpreter (lli) ausgeführt werden.
Nicht in Ihrer Frage aufgeführt sind LLVM-Assembly-Dateien (.ll). Diese enthalten die gleichen Anweisungen wie Bitcodedateien, jedoch in lesbarer Form. Sie können mit dem LLVM-Assembler (llvm-as) in Bitcodedateien umgewandelt werden.
Verwandte Themen
- 1. Was ist der Unterschied zwischen einer .o-Objektdatei und einer .so-Bibliotheksdatei?
- 2. Was ist der Unterschied zwischen einer Portnummer und einer Protokollnummer?
- 3. Was ist der Unterschied zwischen einer Subroutine und einer Funktion?
- 4. Was ist der Unterschied zwischen einer Eigenschaft und einer Instanzvariablen?
- 5. Was ist der Unterschied zwischen einer "nonce" und einer "GUID"?
- 6. Was ist der Unterschied zwischen einer HashMap und einer TreeMap?
- 7. Was ist der Unterschied zwischen einer Klassenvariablen und einer Klasseninstanz?
- 8. Was ist der Unterschied zwischen einer Webreferenz und einer Servicereferenz?
- 9. Was ist der Unterschied zwischen einer Schicht und einer Komponente?
- 10. Was ist der Unterschied zwischen einem Bündel und einer Absicht?
- 11. Was ist der Unterschied zwischen einem URI und einer URL?
- 12. Was ist der Unterschied zwischen BackgroundImage und Image einer Schaltfläche?
- 13. Was ist der Unterschied zwischen einem Algorithmus und einer Funktion?
- 14. Was ist der Unterschied zwischen einer Funktion und * Funktion?
- 15. Was ist der Unterschied zwischen einem Fehler und einer Ausnahme?
- 16. Was ist der Unterschied zwischen einem Benutzer und einer Rolle?
- 17. Was ist der Unterschied zwischen einer Schließung und einem Modul?
- 18. Was ist der Unterschied zwischen einem Ausdruck und einer Aussage?
- 19. Was ist der Unterschied zwischen einer Hashtable und Eigenschaften?
- 20. Was ist der Unterschied zwischen Panik und einer Behauptung?
- 21. Was ist der Unterschied zwischen einer Sprache und einem Framework?
- 22. Was ist der Unterschied zwischen einer Systemeigenschaft und Umgebungsvariable
- 23. Was ist der Unterschied zwischen einem Schema und einer Migration?
- 24. Was ist der Unterschied zwischen einem Adapter und einer Netzwerkschnittstelle?
- 25. Was ist der Unterschied zwischen einer Ansicht und einem Stream?
- 26. Was ist der Unterschied zwischen einem Animator und einer Animation?
- 27. Was ist `delegate` in einer Rails-Objektdatei?
- 28. Was ist der Unterschied zwischen einer Ressource und einer eingebetteten Ressource in einer C# -Anwendung?
- 29. In einer Spring 3.0 GET-Anfrage, was ist der Unterschied zwischen einer @PathVariable und einer @RequestParam
- 30. Was ist der Unterschied zwischen einer Steckdose, die offen ist, und einer Steckdose, die angeschlossen ist?
Danke. Ich verstehe die meisten Teile deiner Antwort. Frage: Ist .bc eine sogenannte "Objektdatei"? – wad
@wad Nein. Objektdateien haben die Erweiterung .o oder .obj und enthalten Maschinencode, während .bc-Dateien den LLVM-Bitcode enthalten. – sepp2k