Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Suchpfad funktioniert nicht richtig? (https://www.delphipraxis.net/207605-suchpfad-funktioniert-nicht-richtig.html)

Siggi 14. Apr 2021 08:03

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

Siggi 15. Apr 2021 07:52

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

dummzeuch 15. Apr 2021 08:20

AW: Suchpfad funktioniert nicht richtig?
 
Zitat:

Zitat von Siggi (Beitrag 1487166)
Ich habe dann den Pfad $(BDSPROJECTSDIR)\GlobalUnits in den Bibliothekspfad aufgenommen

Ich bin da definitiv nicht der Experte, aber: Ist $(BDSPROJECTSDIR) für den Bibliothekspfad überhaupt ein zulässiger Platzhalter? Was passiert denn, wenn Du den Platzhalter durch den echten Pfad ersetzt? Funktioniert es dann?

Uwe Raabe 15. Apr 2021 09:11

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.

Siggi 15. Apr 2021 17:40

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.

Rolf Frei 15. Apr 2021 18:22

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.

Uwe Raabe 15. Apr 2021 21:08

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.

Siggi 18. Apr 2021 14:55

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.

Andreas13 24. Mai 2021 14:05

AW: Suchpfad funktioniert nicht richtig?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1487170)
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.

Was bedeutet hier BTW?

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

Uwe Raabe 24. Mai 2021 15:19

AW: Suchpfad funktioniert nicht richtig?
 
Zitat:

Zitat von Andreas13 (Beitrag 1489998)
Was bedeutet hier BTW?

BTW = by the way (auf Deutsch: Übrigens)

Zitat:

Zitat von Andreas13 (Beitrag 1489998)
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?

Vermutlich genauso wie in der Debug-Konfiguration. Ohne genauere Angaben ist das nicht umfassend zu beantworten.

Andreas13 24. Mai 2021 17:10

AW: Suchpfad funktioniert nicht richtig?
 
Danke, Uwe!
Sorry, mir ist diese "Akü-Sprache" nicht besonders geläufig, daher habe ich das Kürzel BTW in diesem Zusammenhang BTW, $(BDSPROJECTSDIR) für eine Art Umgebungsvariable gehalten... :oops:

Da ich noch mehrere Fragen zum korrekten Einrichten von Delphi 10.3 CE habe, mache ich dafür gleich ein neues Topic auf.
Gruß, Andreas

Andreas13 24. Mai 2021 17:14

AW: Suchpfad funktioniert nicht richtig?
 
Inzwischen habe ich neben Debug- auch die Release-Konfiguration hinbekommen: An einer Stelle im Suchpfad hatte ich einen Doppelpunkt anstelle des Semikolons. :wall:
Danke & Gruß, Andreas


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz