![]() |
Suchpfad funktioniert nicht richtig?
Hallo zusammen,
scheinbar stehe ich gerade total auf'm Schlauch: Ich habe in Delphi 10.4 in meinem Suchpfad (Tools - Optionen - Sprache - Delphi - Bibliothek -> Suchpfad) diverse Verzeichnisse für verwendete Komponenten eingetragen. Alle funktionieren wunderbar in einem meiner Projekte (32-Bit-Windows-Anwendung). In einem anderen Projekt (ebenfalls 32.bit-Windows, einziger Unterschied: IntraWeb als Projektart) werden die im oben genannten Projekt einwandfrei verwendbaren Units aber nicht gefunden ("Fataler Fehler: Unit xxxx nicht gefunden"). Delphi kennt aber die Pfade: Rechtslick - "Datei beim Cursor öffnen" auf die als "nicht gefunden" gemeldete Unit zeigt den Quellcode. Irgendwo übersehe ich etwas - nach stundenlanger Suche in den Einstellungen und per google hoffe ich auf einen Tipp, wo mein Fehler liegen könnte. Viele Grüße, Siggi |
AW: Suchpfad funktioniert nicht richtig?
Hallo zusammen,
vermutlich habe ich da einen Verständnisfehler oder ist da etwas "schräg"? (in Delphi 2010 habe ich den Suchpfad immer je Projekt gepflegt, in 10.4 scheint es das nicht mehr zu geben...??) Erst noch mal vorweg: das im ersten Post beschriebene Verhalten ließ sich auch mit einem neuen leere Projekt "VCL-Anwendung" nachvollziehen (hat also nichts mit IntraWeb zu tun), indem ich im ansonsten unveränderten Formular wie bei Neu ... erstellt nur eine Unit aus einem Ordner im Suchpfad zusätzlich aufgenommen habe. Im Suchpfad steht dieser Verweis: $(BDSPROJECTSDIR)\GlobalUnits. Die Unit enthält diverse in allen Projekten verwendeten Procedures/Functions. Sie benötigt weitere Units aus dem Suchpfad (konkret: aus $(BDSPROJECTSDIR)\Components\JEDI\jwa\branches\2.3 \Win32API). Ich habe dann den Pfad $(BDSPROJECTSDIR)\GlobalUnits in den Bibliothekspfad aufgenommen, aber nicht den Pfad $(BDSPROJECTSDIR)\Components\JEDI\jwa\branches\2.3 \Win32API, der steht weiterhin nur im Suchpfad. Mit dieser Konfiguration wird dann alles gefunden. Warum wird "meine" Unit nur gefunden, wenn ich den Pfad im Bibliothekspfad eintrage, die Units aus dem JEDI\jwa-Pfad aber auch, wenn der Pfad nur im Suchpfad steht? VG Siggi |
AW: Suchpfad funktioniert nicht richtig?
Zitat:
|
AW: Suchpfad funktioniert nicht richtig?
Delphi arbeitet ja seit einigen Versionen mit Plattform- und Build-konfigurationen, die jeweils eigene Suchpfade verwalten. Dabei werden die Einträge in der Regel aus der jeweils höheren Stufe vererbt. Wenn du also den Suchpfad z.B. in der Release-Konfiguration einträgst, dann gilt der nicht für die Debug-Konfiguration.
BTW, $(BDSPROJECTSDIR) sollte korrekt aufgelöst werden. |
AW: Suchpfad funktioniert nicht richtig?
Das hatte ich in meinem ersten Post vergessen zu erwähnen:
Die Pfade für "Suchpfad" sind in Release und Debug jeweils identisch eingetragen und es kommt auch unabhängig von der Einstellung beim Compilieren immer die gleiche Meldung, dass die Unit nicht gefunden wurde. Mit dem Eintrag im Bibliothekspfad statt Suchpfad geht es ja, ich komme also erst mal weiter :-) ... und Delphi ändert einen vollständig eingetragen Pfad automatisch in $(BDSPROJECTSDIR)\Restpfad, und das wird korrekt aufgelöst. |
AW: Suchpfad funktioniert nicht richtig?
Der Suchpfad wird nicht fürs Kompilieren verwendet sondern der Bibliothekspfad. Ich nutze meine IDE in englischer Sprache und da gibt es "Library path" und "Bowsing path". Das wird dann vermutlich im deutschen dann "Bibliothekspfad" und "Suchpfad" heissen.
Beim Konpilieren wird der "Libray path" (Bibliothekspfad) verwendet. Daher müssen da die Verzeichnisse zu deinen vorkompilierten DCU's oder die Sourcen, wenn du die Sourcen jeweils neu kompilieren willst, drin stehen. Der Suchpfad wird dafür verwendet, dass du Sourcecode zu einer Komponente, von der im Bibliothekspfad nur die DCU's vorhanden sind, gefunden werden kann, wenn du im Editor mit Ctrl-Klick oder Ctrl-Enter bei einem Bezeichenr/Unitnamen im dazugehörenden Sourcefile die Quelle anzeigen willst. In dem Fall wird der Suchpfad durchsucht um die Unit zu finden, in der der Bezeichern definiert ist. Von daher brauchst du im Suchpfad nur Verzeichnisse anzugeben, die auf die Sourcen deiner Bibliothek verweiesen, die im Bibliothekspfad nur die DCU's enthalten. Alle Verzeichnisse im Bibliothekspfad, die auch die Sourcen enthalten und somit jeweils neu kompiliert werden, müssen nicht im Suchpfad angegeben werden, weil er für die Editor Filesuche zuerst im Bibliothekspfad sucht und dann im Suchpfad. |
AW: Suchpfad funktioniert nicht richtig?
Das gilt für die globalen Optionen. Im Projekt heißt das dann wieder Suchpfad (im Englischen Search path - dummerweise wurde Browsing path auch mit Suchpfad übersetzt). Dort gehören auch die Pfade rein, die der Compiler durchsuchen soll, aber die eben nicht global sein sollen.
|
AW: Suchpfad funktioniert nicht richtig?
ahh - das erklärt meine "Verwirrung" :?
Bisher hatte ich in Delphi 2010 immer alle Pfade im Projekt-spezifischen Suchpfad hinterlegt. In Delphi 10.4 habe ich die globalen Einstellungen verwendet (weil ich auch keine Projekt-spezifischen Pfade mehr gefunden habe...) und dort den vermeintlich zu den aus Delphi 2010 bekannten Projektoptionen passenden "Suchpfad". Danke für die Aufklärung, dann nehme ich zukünftig vorrangig den Bibliothekspfad :-D. |
AW: Suchpfad funktioniert nicht richtig?
Zitat:
Auch ich habe das gleiche Problem beim Umsteigen von XE5 auf 10.3.3 CE. Zielplattform Win32: Debug funktioniert, aber bei Release vermißt der Compiler die *.pas Files der eigenen Bibliotheken. Wo muß ich den Suchpfad für die Release-Konfiguration der eigenen Bibliotheken einstellen? Danke! Gruß, Andreas |
AW: Suchpfad funktioniert nicht richtig?
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:26 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