Ich nahm immer an, dass die dcu-Datei alles ist, was zur Kompilierzeit benötigt wird. Zumindest sollten die Quelldateien (pas und dfm) nicht benötigt werden.Benötigt Delphi dfm zur Kompilierzeit, wenn dcu vorhanden ist?
Ich habe folgende Situation:
- A Delphi-Anwendung mit zwei Einheiten, die jeweils eine Form enthalten:
- UMain enthält tmain bilden
- USubForm enthält Form TSubForm
- USubForm ist in der uses-Klausel von UMain
- Nach I Kompiliere dieses Programm, ich habe USubForm.pas und USubForm.dfm entfernt und sie durch das kompilierte USubForm.dcu ersetzt.
- Compilation führt nun zu einem Fehler:
DCC : error : E1026 File not found: 'USubForm.dfm'
- Beachten Sie, dass, wenn ich nur USubForm.pas entfernen (aber USubForm.dfm Datei anstelle neben USubForm.dcu verlassen), die Zusammenstellung arbeitet.
Ich verstehe nicht. Ich dachte, die dcu-Datei wäre alles was ich brauche (d. H. Es ist die kompilierte Version der Datei pas + dfm).
Ich benutze Delphi XE2 (wir sollten bald upgraden, aber ich denke nicht, dass dies für meine Frage relevant ist).
P.S. Irgendein Kontext: Ich versuche ein kontinuierliches Integrationssystem für unsere internen Delphi-Bibliotheken und -Anwendungen einzurichten. Ich möchte in der Lage sein, Anwendungen zu kompilieren, ohne die Quelldateien der Bibliotheken zu benötigen.
Ich sehe, dann habe ich mich die ganze Zeit geirrt. Es macht Sinn, dass es wie eine Ressourcendatei behandelt wird. Und zwar während des Linkens, nicht Kompilierens. Vielen Dank. – Roel
Ein DCU ist der kompilierte Code nur für eine PAS-Datei, nicht den DFM. –