Heim > Artikel > Betrieb und Instandhaltung > Was ist die o-Datei unter Linux?
Unter Linux bezieht sich die Datei „.o“ auf die Zieldatei, und „.o“ ist die Abkürzung für „Objekt“. Die Datei „.o“ unter Linux entspricht der Datei „.obj“ unter Windows Die Zieldatei enthält den Maschinencode und Daten, die der Code während seiner Ausführung verwendet, wie z. B. Verschiebungsinformationen, Programmsymboltabellen, die zum Verknüpfen oder Debuggen verwendet werden, und andere Debugging-Informationen.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.
.o ist ein Objekt, das der unter Windows kompilierten obj-Datei entspricht, die allgemein als Objektdatei bezeichnet wird Zielcode wird oft als „Binärdateien erstellen“ bezeichnet. Die Objektdatei enthält Maschinencode (der direkt vom Zentralprozessor des Computers ausgeführt werden kann) und Daten, die der Code bei der Ausführung verwendet, wie etwa Verschiebungsinformationen, etwa die Programmsymboltabelle (Namen von Variablen und Funktionen), die zum Verknüpfen oder Debuggen verwendet wird , zusätzlich zu Enthält zusätzliche Debugging-Informationen.
Unter Linux gibt es drei Arten von Objektdateiformen:Ausführbare Objektdatei, verschiebbare Objektdatei und gemeinsam genutzte Objektdatei. Es gibt auch entsprechende Dateien, die als ausführbare Dateien, Objektdateien und gemeinsam genutzte Bibliotheken bezeichnet werden. Sie haben nur unterschiedliche Begriffe und beziehen sich auf dasselbe.
Ausführbare Objektdatei: Enthält Binärcode und Daten und kann direkt im Speicher ausgeführt werden.
Verschiebbare Objektdatei: Enthält Binärcode und Daten, die zur Kompilierungszeit mit anderen verschiebbaren Objektdateien kombiniert werden können, um eine ausführbare Objektdatei zu erstellen.
Freigegebene Objektdatei: Es handelt sich um eine spezielle verschiebbare Objektdatei, die dynamisch in den Speicher geladen und während des Ladens oder zur Laufzeit verknüpft werden kann.
Tatsächlich generieren Compiler und Assembler verschiebbare Objektdateien (einschließlich gemeinsam genutzter Objektdateien). Der Linker generiert eine ausführbare Objektdatei.
Objektdateiformat unter Linux:Aufgrund der kompilierten Zwischendateien (.obj unter Windows und .o unter Linux), dynamischen Linkbibliotheken und statischen Linkbibliotheken (.lib.dll unter Windows und Linux usw.) ) unter der ausführbaren Datei ähneln Inhalt und Struktur der ausführbaren Datei, sodass sie im Allgemeinen im gleichen Dateiformat wie die ausführbare Datei gespeichert wird.
Erweiterte Kenntnisse:
.o-Datei generieren:
gcc -c test.o test.c
.a-Datei generieren:
ar cqs test.a test.o
.o entspricht der obj-Datei in Windows, eine .c- oder .cpp-Datei entspricht einer .o-Datei
.a ist eine Kombination aus mehreren .o, die für statische Verbindungen verwendet wird, d. h. mehrere .a können verknüpft werden, um eine ausführbare EXE-Datei zu generieren.
.so ist ein gemeinsam genutztes Objekt, das für dynamische Verbindungen verwendet wird Windows Die DLL ist fast identisch, sie wird nur geladen, wenn sie verwendet wird
Empfohlenes Lernen:
Linux-Video-TutorialDas obige ist der detaillierte Inhalt vonWas ist die o-Datei unter Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!