Was ist der Unterschied zwischen kompilieren und Gebäude in Delphi?
Mit Delphi 6 gibt es zwei Optionen: Bauen und Kompilieren.
Weiß ich, wenn ich ein Programm ausführen kompiliert nur die Dateien, die sich geändert haben, und nutzt die DCUs für diejenigen, die es nicht getan haben. Wenn ich auf build anscheinend baut die DCUs.
Was ich Frage ist, wenn ich ein Programm für den release (build-Einstellungen ändern, bedingte Variablen, etc.) kann ich nur kompilieren, oder muss ich eine komplette bauen?
Was passiert, wenn ich nicht einen vollständigen build, ist es consiquence?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim bauen, beim kompilieren?
Den compiler nur dann automatisch neu kompiliert Einheiten, wenn der datetime-stamp der .pas-source-Dateien ändern (1,2).
Auf anderen Staates die änderungen im Projekt (Richtlinien, debug oder anderen compiler-Einstellungen etc), die der compiler nicht automatisch neu kompilieren. Das ist, wenn Sie brauchen, um Kraft ein zu bauen.
Müssen Sie auch die Kraft, einen wieder aufzubauen, wenn .inc oder andere im Lieferumfang enthalten ($I) Dateien ändern(3), da deren datetime-Stempel ist nicht geprüft.
So, in Zusammenfassung, wenn alles, aber die Einheit .pas-Dateien ändert, müssen Sie eine erstellen.
Gibt es einige ungewöhnliche Fälle, in Gebäude. Die meisten führen in eine "nicht finden können, Gerät xxx" Fehler, während es scheint zu sein, es
(1) und wenn Delphi ist wie FPC .dcu 's beinhalten eine CRC von der interface-Abschnitt alle dcu' s abhängt. Dies kann verwendet werden, um zu überprüfen, ob es gibt eine weitere Notwendigkeit für die kompiliert Sie auch. E. g. aufgrund der Dateisystem-manipulation (bewegen von dcu ' s zu)
(2) für die Experten, haben Sie einen Blick auf {$implicitbuild xx} zu
(3) im Gegensatz zu Delphi, FPC nicht aus .inc verpasst. Die FPC-Projekt stark verwendet .inc-Dateien intern, diese änderung bereits Daten aus der Zeit vor es wurde Delphi zu unterstützen.
Als Ergebnis, Pakete, kopieren Sie die "definiert" inc-Datei in ein beliebiges Verzeichnis nicht kompilieren mit FPC, weil Sie in der Regel leicht unterschiedliche Größe und CRC. Indy (10) ist ein gutes Beispiel dafür.
@Daisetsu, hier ist der Unterschied zwischen bauen und kompilieren.
Bauen kompiliert alle verwendet die Einheiten in einem Projekt, auch wenn der Quellcode verfügbar ist.
Kompilieren kompiliert nur geänderte verwendeten Einheiten.
in meiner persönlichen Erfahrung, wenn Sie änderungen an der Konfiguration des Compilers, müssen Sie ausführen, ein build der Anwendung, so dass änderungen werden in allen Einheiten des Projekts.
Sollten Sie immer Bauen, wenn Sie Einstellungen ändern.
Die zuvor kompilierte DCU Dateien wurden kompiliert mit unterschiedlichen Einstellungen, wie z.B. compiler definiert. Das kann dazu führen, dass zwei Einheiten im selben Projekt erstellt werden, mit verschiedenen Einstellungen.
Bei der Vorbereitung einer Veröffentlichung, sollten Sie sicherlich eine vollständige bauen.
Es gibt keine Entschuldigung, nicht auf Delphi-compiler ist ziemlich schnell genug.
Klärung der Bedeutung von Reproduzierbaren Freisetzung
Für Ihre eigenen Vernunft, ich fordere nachdrücklich, dass Sie immer eine vollständige bauen für eine Release-version.
Ich Tue regelmäßig volle baut auch für nicht-Release-Versionen.