2012-12-22 4 views

Antwort

11

Objektdateien sind das, was der Linker verwendet, um vollständige ausführbare Dateien (oder Bibliotheken) zu erstellen.

Sie können Ihren Compiler normalerweise eine ausführbare Datei "direkt" ausgeben lassen, die Syntax hängt vom Compiler ab. Zum Beispiel mit GCC:

gcc foo.c bar.c ... 

werden eine ausführbare Datei und keine Zwischenobjektdatei bleiben produzieren (aber man wird wahrscheinlich erzeugt wurde - und anschließend gelöscht).

Objektdateien werden zum Erstellen eines inkrementellen Builds verwendet. Sie kompilieren jede Quelldatei (oder Gruppe von Quelldateien) in Objektdateien und verknüpfen sie dann alle in einer ausführbaren Datei. Dadurch können Sie nur die Quelldateien neu kompilieren, die seit der letzten Erstellung geändert wurden, wodurch möglicherweise viel Zeit gespart wird.
Oder Sie könnten die gleichen Objektdateien verwenden, um verschiedene ausführbare Dateien zu verknüpfen (verwenden Sie Teile Ihres Builds, um zum Beispiel eine ausführbare Datei und eine gemeinsame Bibliothek zu generieren), was wiederum Zeit und Ressourcen spart.

Objektdateien werden aus theoretischer Sicht nicht benötigt. Sie sind einfach sehr praktisch (und eigentlich technisch notwendig mit einigen (meisten?) Toolchains, die Dinge, die der Assembler zu produzieren weiß und der Linker weiß, wie er verlinkt ist).

Verwandte Themen