![]() |
Delphi-Version: 2005
Compiler findet Unit nicht
Hallo Allerseits!
Folgendes Problem: Ich möchte eine eigene Unit in mein Programm einbinden. Macht man ja normalerweise über USES entweder im Interface- oder Implementation-Teil. Die Unit, bzw. die DCU-Datei befindet sich im selben Verzeichnis wie das Programm, welches diese einbnden soll. Der Compiler meldet aber: "Datei nicht gefunden: 'Unitname.dcu'". Was mache ich falsch? |
AW: Compiler findet Unit nicht
Steht das Verzeichnis im Suchpfad? Passt di dcu zur Delphiversion?
|
AW: Compiler findet Unit nicht
Falls Du diese Unit öfter brauchst, kannst Du sie in ein Verzeichnis im Delphi-Suchpfad verschieben. Ansonsten füge sie einmal Deinem Projekt hinzu (leider weiß ich nicht mehr, wie das unter Delphi 5 genau ging).
|
AW: Compiler findet Unit nicht
Hmm... Delphi 5 kenn ich nicht, hab selber nur TurboDelphi. Da klickst du auf Projekt im MainMenu und dann auf 'Dem Projekt hinzufügen...'. Da musst dann halt deine Datei suchen.
Hoffe mal, dass das bei Delphi 5 nicht viel anders ist. LG, hans ditter |
AW: Compiler findet Unit nicht
Zitat:
"Projekt\Dem Projekt hinzufügen...\Name der Datei". Das macht man doch aber nur, wenn man die Unit auch debuggen will. Deshalb kann man an dieser Stelle nur ".pas"-Dateien zufügen. Wenn man die Unit nur nutzen will, dann braucht man nur die "*.dcu". Und die kann man darüber nicht einbinden. |
AW: Compiler findet Unit nicht
Zitat:
Die Unit habe ich selbst mit der verwendeten Delphi-Version erstellt. |
AW: Compiler findet Unit nicht
Zitat:
Im Moment benötige ich sie erst einmal nur für ein Programm. Zitat:
|
AW: Compiler findet Unit nicht
Zitat:
- den Namen hast du auch richtig geschrieben? - ist die DCU eigentlich mit der selben Delphi-Version erstellt/kompiliert worden? |
AW: Compiler findet Unit nicht
Zitat:
btw: trippleposts sind nicht gern gesehn, dazu gibts den edit-Button. |
AW: Compiler findet Unit nicht
Zitat:
|
AW: Compiler findet Unit nicht
Zitat:
a) die *.dcu meiner Datei gelöscht und die *.pas-Datei dem Projekt hinzugefügt -> Danach meckert der Compiler nicht mehr darüber, dass er die bisher betroffene Datei nicht findet. Ist ja auch logisch, da er die *.pas-Datei der Unit jetzt zur Verfügung hat. Das Problem ist aber nur verschoben: In dieser Unit werden Units eingebunden, deren *.pas-Dateien ich nicht habe. Mir stehen lediglich die *.dcu-Dateien zur Verfügung. Und das hat bei der Erstellung meiner Unit, die ich ursprünglich einbinden wollte, problemlos funktioniert. Zur Verdeutlichung: Programm -> Unit A -> Unit B, Unit C b) Bevor ich Euch hier mit meinen Problemen nerve, habe ich mehrmals verglichen, ob der Unitname richtig geschrieben ist. c) Die selbst geschriebene Unit ist mit der selben Delphi-Version erstellt/kompiliert worden. |
AW: Compiler findet Unit nicht
Dann pack die *.dcu mal mit ins Projektverzeichnis, das sollte klappen.
|
AW: Compiler findet Unit nicht
ob nun .dcu oder .pas ist egal (wenn diese Dateien im selben Verzeichnis liegen, wie die .dpr/.pas, wo sie in der Usesklausel (ohne "in Filename") auftauchen
oder wenn sie in einem der Such-Verzeichnisse liegen, dann nimmt Delphi diese. Wenn die DCU älter ist, als die PAS (falls Beides gefunden wird), dann wird die DCU neu kompiliert, ansonsten wird die DCU verwendet (es sei denn man sagt, daß alles neu kompiliert werden soll). ABER: Delphi findet keine DCUs, welche nicht mit der selben Compilerversion erstellt wurden (es sei denn, die PAS liegt bei, dann wird ja neu kompiliert) und selbst wenn Delphi soeine Datei findet, dann ignoriert es diese. |
AW: Compiler findet Unit nicht
Hallo Allerseits!
Ich habe die Lösung des eigentlichen Problems zwar nicht gefunden, aber ich kann beschreiben, wie es funktioniert. 1.) Zunächst einmal werden alle benötigten *.dcu-Dateien (die eigene und die fremden) in das Programmverzeichnis kopiert. 2.) Dann wird ein neues Programm mit der IDE erstellt und mit "Datei\Speichern unter..." in diesem Verzeichnis abgelegt. 3.) Nun das Programm 1x kompilieren, bzw. die *.exe erzeugen (strg + F9). 4.) Jetzt erst die benötigte Unit in die uses-Zeile aufnehmen. 5.) Programm erneut kompilieren und starten. Dann läufts. Fragt mich aber nicht warum... |
AW: Compiler findet Unit nicht
Bitte unterlasse es zukünftig innerhalb von 24 Stunden mehrere Beiträge hintereinander zu verfassen ohne das zwischenzeitlich jemand anderes etwas gepostet hat. Das nennt man pushen und ist anderen Forenmitgliedern gegenüber unfair und deshalb innerhalb von 24 Std. nicht erlaubt. Wie bereits erwähnt kannst du deinen Beitrag innerhalb von 24 Stunden jederzeit editieren wenn du etwas hinzufügen willst.
|
AW: Compiler findet Unit nicht
Du kannst auch mehrere User in einer Antwort zitieren, indem du bei deiner Antwort etwas runterscrollst und rechts auch [Zitat] klickst.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz