Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Suchpfade von Delphi ? (https://www.delphipraxis.net/160812-suchpfade-von-delphi.html)

himitsu 1. Jun 2011 20:14


Suchpfade von Delphi ?
 
So, weil es irgendwie anscheinend nirgendwo genau/zusammen stehen zu scheint...

Könnte da mal jemand helfen Licht ins Dunkel zu bringen?

Es gibt doch Unmassen von Pfaden überall im Delphi, aber was ist nun genau wofür und wer nutzt sie wann?



Dafür hatte ich mich mal im Delphi umgesehn und versucht alles zu finden, wo man dafür etwas einstellen kann.
  • Projektoptionen\Delphi-Compiler [#]
    • Ausgabeverzeichnis
      dort landen *.exe und *.dll
    • Ausgabeverzeichnis für Units
      hier landen die *.dcu
      ohne Pfad, werden sie bei der jeweiligen *.pas abgelegt
    • Bedingungen/Conditionals
      Liste mit Compilerschaltern, welche in jede zu kompilierende Unit weitergegeben werden
    • DCP-Ausgabeverzeichnis
      irgendwo müssen doch auch die *.dcp landen
    • Package-Ausgabeverzeichnis
      ebenso die armen *.bpl
    • Suchpfad
      das hier ist wohl für die Suche nach *.pas und *.dcu
      vielleicht auch noch für *.dcp und *.bpl ?
    • Unit-Aliase
      z.B. neue Namen für umbenannte Units
  • Projektoptionen\Delphi-Compiler\Ausgabe - C/C+ [#]
    • C/C++ .bpi-Ausgabeverzeichnis (Package-Importbibliotheken)
      hier landet wohl sowas, wie die C-Variante der BPLs
    • C/C++ .hpp-Ausgabeverzeichnis
      hier landen die C-Header (für die OBJ/LIB/DCU)
    • C/C++ .obj/.lib-Ausgabeverzeichnis
      das Ziel für die C-Variante der DCUs
  • Projektoptionen\Ressourcen-Compiler\Verzeichnisse und Bedingungen [#]
    • Ausgabeverzeichnis für .res-Dateien
      hier landen die *.res
    • Definiert ein Präprozessorsymbol (Release)
      ebenfalls sowas wie eine Liste von Compilerschaltern
    • Include-Dateisuchpfad
      Suchfpfade für Dateien, welche in die RES eingebunden werden
  • Tools\Umgebungsoptionen\Delphi-Optionen\Bibliothek
    • Packageausgabeverzeichnis
      globales Verzeichnis - kann durch die Projektoptionen überschrieben werden
    • DCP-Ausgabeverzeichnis
      globales Verzeichnis - kann durch die Projektoptionen überschrieben werden
    • HPP-Ausgabeverzeichnis
      globales Verzeichnis - kann durch die Projektoptionen überschrieben werden
    • Debug-DCU-Pfad
      hier wird zuerst nach DCUs gesucht, noch vor dem "Suchpfad", wenn z.B. mit Debug-DCUs kompiliert wird (siehe Projektoptionen)
    • Suchpfad
      das hier solle doch die globale Liste sein, welche genutzt wird, wenn der Suchpfad des Projekts nichts fand
    • Bibliothekspfad
      aber was ist dann das bitte?

In den Projektoptionen [#] gibt es von jedem Eintrag mindestens 3 Möglichkeiten
> Basis, Release und Debug

Jeweils "fett", wenn sie vom Vorgänger abweichende Werte enthalten.
- IDE-Option < Basis < Release
- IDE-Option < Basis < Debug

Und dann gibt es nochmal eine Projektvorlage, welche für neue Projekte verwendet wird.
Dazu einfach mal in einem Projekt die gewünschten Optionen einstellen und dann vorm Speichern (Klick auf [OK] des Projektoptionsdialogs) einen Hacken bei "Standard für neue Projekte" machen.






Soooooo, aber wo soll man nun wann etwas eintragen und warum?
Wenn man z.B. eigene Packages erstellt hat, irgendeine Unitssammlung nutzt oder fremde Packages, DCUs, Units usw. einbinden möchte.


Vorallem bei den vielen Suchpfaden kann man sich manchmal nicht so recht entscheiden. :oops:



Wie man Vieles davon letztendlich via SVN und FinalBuilder updaten/abgleichen kann, hab ich schon raus, aber nun muß erstmal noch ein Konzept her, was wohin muß.
Und am Ende auch noch zusammen mit http://www.delphipraxis.net/160804-o...ektionfos.html
.
:stupid:

jaenicke 1. Jun 2011 21:05

AW: Suchpfade von Delphi ?
 
Es gibt den Bibliothekspfad. In dem schaut der Compiler nach um die Units zu finden, die in dem Projekt benutzt werden. Die werden dann zum Kompilieren und Linken benutzt.

Deshalb gehören in den Bibliothekspfad die Verzeichnisse, in denen die kompilierten Versionen der Units liegen, damit die einfach nur gelinkt und nicht unbedingt kompiliert werden müssen.

Der Suchpfad dagegen ist der Pfad, in dem der Debugger zusätzlich zum Bibliothekspfad nach den Quelltextdateien der Units sucht. Das heißt, wenn du z.B. in eine Prozedur hineinsteppst, wird dort nach dem Quelltext dazu gesucht.

Dann gibt es dazu die Debugversion z.B. des Bibliothekspfads, in denen die kompilierten Versionen der Units inkl. Debuginformationen gesucht werden.

Stevie 1. Jun 2011 21:41

AW: Suchpfade von Delphi ?
 
Dazu gabs neulich auch schon ein QC Eintrag. Ich kann nur empfehlen, die IDE auf englisch umzustellen, hier haben sich nämlich 2 fiese und irreführende Übersetzungsfehler eingeschlichen.

Einmal gibt es in den Environment Options\Delphi Options\Library den Browsing path (mit Suchpfad übersetzt). Das ist der Pfad, wo die IDE die Source Dateien suchst, wenn du Ctrl+Enter auf die Units machst (oder Strg+Click). Außerdem gibt es dort den Library Path. Dort sucht Delphi dcu und pas Dateien für das Kompilieren.

In den Projekt Optionen gibt den Search path (Übersetzung: Suchpfad). Das ist eigentlich das gleiche wie der Library Path aus den Environment Optionen. Das sieht man auch sehr gut, denn dort stehen die Pfade aus dem Library path der Environment Options drin. Zusätzlich dazu kannst du dort für das Projekt noch Pfade hinzufügen.

Beim Schreiben ist mir aufgefallen, dass auch die englische Version etwas verwirren kann - aber ich finde weniger, als 2mal das gleiche Wort zu haben, was aber unterschiedliche Bedeutungen hat.

Übrigens ist es megaätzend, dass sie die Build Konfigurationen lokalisiert haben... hatte neulich plötzlich nen Débogage Verzeichnis, weil das in nem 3rd Party Package so drin stand :wall:

stahli 9. Mai 2014 21:20

AW: Suchpfade von Delphi ?
 
... jetzt mal Fragen zu XE3

Ich habe eine Projektgruppe
-Exe1
-Exe2
-Exe3
-Package

Package wird von 2 Exen genutzt.

Alle kann ich als Debug- oder Release-Version kompilieren.

Was soll ich aber in den Umgebungsoptionen für Pfade einstellen?
Die DCU´s gibt es ja jeweils in zwei Zielordnern.

Wenn ich Exe1 als Debug-Version erstelle, wie wird dann auch das Package als Debug-Version eingebunden und anders herum eben als Release?
Wird das als abhängiges Package vielleicht automatisch berücksichtigt?

Cashew 22. Feb 2019 15:53

AW: Suchpfade von Delphi ?
 
Ich hätte hierzu auch mal eine Frage...

Für meine Delphi 10.2.3 IDE habe ich eine zusätzliche Komponente installiert. In den IDE Optionen wurde durch den Komponenten Installer der Bibliothekpfad um das Verzeichnis erweitert in dem sich die *.dcu Dateien der installierten Komponente befinden.

In den IDE Optionen habe ich dann noch zusätzlich den Suchpfad um das Verzeichnis erweitert in dem sich die Source Code Dateien der installierten Komponente befinden. Die Änderung habe ich benötigt, damit ich über STRG+Enter (wenn der Cursor im Unit Namen platziert ist) in die entsprechende Source Code Datei springen kann.

So weit so gut...


Nun möchte ich eine Methode aus dieser Komponente debuggen und habe hierzu einen Breakpoint in der entsprechenden Unit gesetzt. Dieser wird allerding ignoriert. Ich kann hier erst debuggen, wenn ich den Suchpfad des Projektes um das Verzeichnis erweitere, in dem sich die Sourcen der Komponente befinden.

Ist das normal?

Delphi.Narium 22. Feb 2019 16:15

AW: Suchpfade von Delphi ?
 
Nimm die zu debuggenden Datei(en) doch einfach ins Projekt auf. Dann musst Du nicht an die Pfade und die IDE weiß garantiert, um welche Datei es sich konkret handelt.

jaenicke 22. Feb 2019 16:37

AW: Suchpfade von Delphi ?
 
Ja, es ist normal, dass das funktioniert, wenn du den Suchpfad des Projekts ergänzt. Das liegt daran, dass dort die Bezeichnung irreführend ist. Das ist in Wirklichkeit das projektbezogene Äquivalent zum Bibliothekspfad. Einen projektbezogenen Suchpfad gibt es gar nicht.

Wenn die Komponente in ihrem Bibliothekspfad keine Version mit Debuginformationen hat, bleibt dir auch nichts anderes übrig als diesen Weg zu gehen oder die Units in das Projekt einzubinden. In jedem Fall solltest du nach dem Debuggen das DCU-Ausgabeverzeichnis deines Projekts bereinigen, damit dir die dort befindlichen DCUs der Komponente später nicht in die Quere kommen.

Ghostwalker 23. Feb 2019 05:14

AW: Suchpfade von Delphi ?
 
Zitat:

Zitat von jaenicke (Beitrag 1104195)
Es gibt den Bibliothekspfad. In dem schaut der Compiler nach um die Units zu finden, die in dem Projekt benutzt werden. Die werden dann zum Kompilieren und Linken benutzt.

Deshalb gehören in den Bibliothekspfad die Verzeichnisse, in denen die kompilierten Versionen der Units liegen, damit die einfach nur gelinkt und nicht unbedingt kompiliert werden müssen.

Der Suchpfad dagegen ist der Pfad, in dem der Debugger zusätzlich zum Bibliothekspfad nach den Quelltextdateien der Units sucht. Das heißt, wenn du z.B. in eine Prozedur hineinsteppst, wird dort nach dem Quelltext dazu gesucht.

Dann gibt es dazu die Debugversion z.B. des Bibliothekspfads, in denen die kompilierten Versionen der Units inkl. Debuginformationen gesucht werden.


Also, wenn ich das jetzt richtig verstehe, wird im Bibleothekspfad nach DCU's gesucht und im Suchpfad nach PAS, wobei der Projektspezifische Suchpfad eigentlich ein Bibleothekspfad ist, richtig ?:gruebel:

jaenicke 23. Feb 2019 06:51

AW: Suchpfade von Delphi ?
 
Fast, im Bibliothekspfad wird auch nach Quelltexten geschaut. Liegt dort also eine passende .pas Datei wird diese genommen und kompiliert, liegt dort nur die .dcu, wird diese in kompilierter Form benutzt.

Der globale Suchpfad ist nur für den Debugger, damit der die Quelltexte zu den Units beim Debuggen findet. Für das Kompilieren wird der nicht benötigt.

Uwe Raabe 23. Feb 2019 08:33

AW: Suchpfade von Delphi ?
 
Zitat:

Zitat von Ghostwalker (Beitrag 1426284)
wobei der Projektspezifische Suchpfad eigentlich ein Bibleothekspfad ist, richtig ?:gruebel:

Das ist tatsächlich eine der unsäglichen Namensgebungen in der Delphi. Ist aber wohl schon seit Delphi 1 so.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 Uhr.
Seite 1 von 2  1 2      

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