LCL motzt bei Unit-Überschneidungen

Rund um die LCL und andere Komponenten
Antworten
Mathias
Beiträge: 6955
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

LCL motzt bei Unit-Überschneidungen

Beitrag von Mathias »

Ich wollte folgendes Test-Programm compilieren.
Obwohl ich meine gtk2.pas nicht mal in uses eingebunden habe. Motzt er in der Unit Interfaces.
GTK2 habe ich nur als Versuch genommen, weil er bei mir bei cairo.pas schon gemotzt hat, als ich eine gleichnamige Unit hatte.
Nur da hat er da in der unit gdk2x gemotzt.

Was mich dabei verwundert, das es in der LCL-package motzt. Diese Package sollte es eigentlich nicht interessieren, was für eine Unit ich lokal habe.

Was übersehe ich da, das mir dies unlogisch vorkommt ?

Mir ist bekannt, das Cairo ein Bestandteil von GTK ist. Aber ein Neuling, die Zufällig eine Unit Cairo baut, der wird stundenlang Fehlersuchen, weil der Fehler total unlogisch ist, Was hat diese Fehlermelung mit Cairo gemeinsam. Beachte Beispiel cairo_unit_test_2.zip.

Code: Alles auswählen

gdk2x.pas(34,55) Fatal: Kann gdk2 nicht finden verwendet von gdk2x. Stellen Sie sicher, daß alle .ppu-Dateien eines Packages sich in dessem Ausgabeverzeichnis befinden. ppu im falschen Verzeichnis=/home/tux/fpcupdeluxe_trunk/fpc/units/x86_64-linux/gtk2/gdk2.ppu..
Dateianhänge
cairo_unit_test_2.zip
(3.76 KiB) 51-mal heruntergeladen
cairo_unit_test.zip
(70.68 KiB) 48-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: LCL motzt bei Unit-Überschneidungen

Beitrag von Socke »

Baust du nur das Package LCL neu oder deine Anwendung?
Bei letzterem hat sucht der Compiler zunächst im Unit-Pfad vorkompilierte Dateien. Wenn er dort welche findet, will er diese verwenden und wenn die dann in der Signatur nicht zu den Erwartungen passen, versucht er andere Units neu zu übersetzen und so weiter.

Wenn du nur die LCL neu baust, sollten die Pfade eigentlich gegeneinander abgegrenzt sein.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Mathias
Beiträge: 6955
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: LCL motzt bei Unit-Überschneidungen

Beitrag von Mathias »

Baust du nur das Package LCL neu oder deine Anwendung?
Es ist letzteres.
Ein neues Programm erstellen, irgendwo abspeichern, neue Unit und diese als "cairo" speichern und schon kommt der Fehler.
Wenn du nur die LCL neu baust, sollten die Pfade eigentlich gegeneinander abgegrenzt sein.
Aufräumen und neu kompilieren geht nicht.

"Kompiliere Lazarus mit Profil " geht auch nicht.
Wäre ja merkwürdig wen dies ginge.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten