Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
3.917 Beiträge
 
Delphi 12 Athens
 
#3

AW: Unter welchen Bedingungen wird ein System-Unit Fiix kompiliert und eingebunden ?

  Alt 13. Jun 2020, 08:48
Die werden nie neu kompiliert.
Ja richtig, das meinte ich auch nicht (hab mal den Titel angepasst um das besser zu beschreiben).

Sagen wir mal es gibt eine Orginal-DCU der FMX.ListView.pas welche normalerweise statisch gelinkt wird.
Binde ich jetzt meine gefixte FMX.ListView.pas in meine Projekt-DPR ein, dann wird diese neu-kompilierte-DCU zum Projekt gelinkt, statt der statischen Orginal-DCU.
Durch den gleichen Namen der FMX.ListView.pas sollte gewährleistet sein das es im Projekt nur EINE Version der FMX.ListView-DCU geben kann (also in dem Fall nur meine, gefixte Version).

Soweit so gut.

1. Frage:
Ist das so, oder könnten auch 2 FMX.ListView-DCU's (alt/neu) gleichzeitig in einem Projekt existieren ?
Wenn z.B. andere Orginal-DCU's statisch die alte Orginal-DCU einbinden.
Wie kann ich sicher sein das wirklich nur die gefixte DCU gelinkt ist.

Leider scheint das nicht immer zu funktionieren wenn der Suchpfad nicht im .DPROJ Haupt-Verzeichnis liegt.
Dann habe ich keine Chance den Pfad zu meiner gefixten FMX.ListView.pas anzugeben, und es wird
doch die orginale DCU, oder noch schlimmer beide Versionen gelinkt.
Das könnte sich durch nicht mehr passende Breakpoints zeigen (die blauen Break-Punkte sind verschoben).

Gibt es noch andere Methoden um solche "verschobenen" Breakpoints, und falsche statische Links zu finden und zu Vermeiden ?

2. Frage:
Ich kenne nur die obige Methode (in jedem .DPROJ Hauptverzeichnis) um sicher solche Fixes zu linken und einzubauen.
Ich hoffe aber das es doch irgendeine Möglichkeit gibt diese gefixten FMX.ListView.pas irgendwo in Unterverzeichnisse zusammenzufassen, so dass sie noch sicher gelinkt werden.

Z.B. wäre auch denkbar alle diese Fixes in einem zentralen DCP/LIB zu linken,
und dann den Projekten nur die eine DCP hinzuzulinken.
Ich vermeide aber möglichst solches vorkompiliertes, statisches Linken, weil das oft mehr Probleme bringt als löst (man vergisst gerne solche statischen DCP/LIB zu aktualisieren).

Mein Favorit sind aber leichtgewichtige Units, die immer neu kompiliert werden, statt schwerer, statischen DCP/LIB Files, welche nicht immer neu kompiliert werden.
Mit Kompilierzeiten habe ich weniger ein Problem, so dass ich keine Precompiled-Libraries brauche.

Geändert von Rollo62 (13. Jun 2020 um 08:54 Uhr)
  Mit Zitat antworten Zitat