Warum sind C++, OBJ-Dateien wichtig?
Seien Sie gewarnt ich bin neu in C++.
Wenn ich kompilieren meine Programme, die ich feststellen, dass es eine .obj erstellt für jede Klasse, die habe ich. Wenn ich schaute auf andere Programme in meinem Programm Dateien, merkte ich, dass diese Programme kaum welche hatte .obj ist, also denke ich, dass ich etwas falsch machen.
Auch wenn ich Sie gelöscht, die obj-Dateien aus dem release-Verzeichnis und versucht, führen Sie die exe-Datei erneut und es funktionierte noch genau wie vorher, ich kenne diese Dateien nicht sinnlos, aber...
Was ist Ihre Verwendung? Sollten Sie für jede class-Datei? - wenn nicht, wie kann ich dies beheben?
Wie setze ich Sie in ein Verzeichnis wie ein Ordner mit dem Namen obj, wenn ich kompilieren?
- Diese Dateien generiert werden, die für die Verwendung durch den linker. Sie brauchen nicht, Sie zu berühren.
- Aber wenn Sie löschen die
.obj
- Dateien, dann den compiler erneut kompilieren müssen, wenn Sie Bearbeiten sogar eine.cpp
- Datei. Nicht löschen Sie Sie von Ihrem Projekt-Verzeichnis, es sei denn, Sie sind sicher, dass Sie diese nicht benötigen. - Sie tun nicht irgend etwas falsch. Ohne die .obj Sie werden nicht in der Lage sein link so erstellen Sie eine .lib .dll-oder .exe.
- Herzlich willkommen! In der Regel versuchen wir zu vermeiden, danke taglines in den Fragen, um Sie zu halten aufgeräumter, können Sie Lesen, warum im hier: "Sollte 'Hallo', 'danke,' Slogans und Begrüßungen entfernt von Beiträgen?".
- Hey, ich habe gelöscht a-Klasse in meinem Projekt (visual c++ 2015), und jetzt gibt mir die Fehlermeldung "kann nicht geöffnet werden Debug - /Dateinamen.obj wie zu lösen"
- reinigen Sie Ihr Projekt dann neu bauen
- Ich Tat dies; noch kein Glück.
Du musst angemeldet sein, um einen Kommentar abzugeben.
.obj
Dateien (.o
Dateien auf Linux/Unix) sind kompilierte Quellcode-Dateien, wird es in der Tat eine für jede.cpp
- Datei, oder mehr formell "compilation unit". Sie entstehen durch die Zusammenstellung phase Ihres Bauvorhabens.Diese
.obj
Dateien werden dann, verbunden durch die linker entweder um eine Anwendung, in der Regel.exe
- Datei auf Windows-oder einer Bibliothek-Datei, die auf windows kann eine.dll
für die dynamische Bibliothek, oder.lib
für statische Bibliothek (das ist im Grunde eine Sammlung von.obj
- Dateien verpackt in einer Datei, siehe unten). Auf Unix-ähnlichen Plattform-Anwendung hat normalerweise keine Endung, und der dynamischen Bibliothek hat.so
Erweiterung und statische Bibliothek hat.a
Erweiterung.Sehen Sie nicht
.obj
- Dateien oder statische.lib
Dateien mit Programmen, da Sie nicht zur Laufzeit benötigt, sind Sie nur von linker. Beim ausführen der Verknüpfung von Phasen des Bauvorhabens-linker verbindet alle benötigten.obj
Dateien in.exe
und.dll
Dateien (oder gleichwertig), die zur Laufzeit verwendet.Objekt-Dateien werden erzeugt durch den code zu kompilieren. Nehmen Sie Ihre code-und wandelt Sie in Maschinen-code, so dass der computer verstehen kann und implementieren Ihre Lösungen. Sobald der Objekt-Dateien erzeugt wurden (eine Objekt-Datei generiert für jeden .cpp-Datei), alle relevanten Objekt-Dateien werden vom compiler eine ausführbare Datei. Die ausführbare Datei kann dann ausgeführt werden, unabhängig von der Objekt-Dateien und object-Dateien können gelöscht werden. Wenn ein anderes ausführbares Programm geschaffen, Objekt-Dateien für die entsprechende code wäre wieder nötig.
Hoffe, es hilft!
Obj-Dateien generiert werden, nach dem kompilieren. Der compiler generiert Ihnen mit vielen Informationen. Dann generiert der linker eine ausführbare Datei mit anderen Dateien, also diejenigen, die OBJ-Dateien sind nicht mehr notwendig.
Einem sehr erweiterten Antwort-kann man in jedem C++ - Buch.
Ist es kein problem. Aber wenn Sie Sie löschen, werden Sie zwingen Sie Ihren compiler zu kompilieren, einige Dateien, für die keine änderungen haben aber keine OBJ-Dateien mehr. Sich dessen bewusst sein.
Nur über Sie zu vergessen, wenn Sie arbeiten immer noch in Ihrem code.