LCLBase in eigene Packages

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

LCLBase in eigene Packages

Beitrag von Mathias »

Ich will eine eigene Package mit meinen eigenen Units erstellen.
Meine Units konnte ich mit Add>> hinzufügen, aber beim kompilieren kommt folgender Fehler:

Code: Alles auswählen

matrix.pas(8,13) Fatal: Kann Forms nicht finden verwendet von Matrix. Check if package LCLBase is in the dependencies von Package OpenGL3.


Wie bringe ich die LCLBase in meine Package ?
Matrix ist eine Unit von mir.

Wen ich eine fremde Package kompilieren will, z.B. BGRABitmapPack, geht es fehlerlos, obwohl dort auch Units von der LCLBase eingebunden sind.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
theo
Beiträge: 8643
Registriert: Mo 11. Sep 2006, 19:01

Re: LCLBase in eigene Packages

Beitrag von theo »

Add -> Neue Anforderung

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: LCLBase in eigene Packages

Beitrag von Komoluna »

Genau so kannst du auch deinem Projekt ein Package hinzufügen(im Projektinspektor).

MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

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

Re: LCLBase in eigene Packages

Beitrag von Mathias »

Danke, dies hat mich einen Schritt weiter gebracht.

Kompilieren kann ich die Package jetzt ohne Fehler.
Nur wen ich sie installieren will und Lazarus die IDE neu kompilieren will kommt folgender Fehler:

Code: Alles auswählen

Kompiliere Package OpenGL3 0.0: Erfolg
IDE erstellen: Exit code 2, Fehler: 1, Warnungen: 1
Warning: Recompiling BackGround, checksum changed for matrix
opengl3.pas(10,3) Fatal: Kann BackGround nicht finden verwendet von OpenGL3, incompatible ppu=/n4800/DATEN/Programmierung/Lazarus/Units/MyPackages/OpenGL/lib/x86_64-linux/background.ppu, Package OpenGL3
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 845
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Winux (L 2.0.11 FPC 3.2)
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: LCLBase in eigene Packages

Beitrag von fliegermichl »

Oh das hat mich auch schon einige Stunden an Sucherei gekostet :-(

die RTL beinhaltet auch eine Datei mit dem Namen matrix.pp.
Dein Package darf keinen Dateinamen haben, der in der RTL oder einem anderen Package vorkommt.
Am besten benennst Du alle Deine Dateien mit einem Prefix mypackage_matrix.pas.

Viele Grüße
Michael

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

Re: LCLBase in eigene Packages

Beitrag von Mathias »

Wen ich dich richtig verstehe, liegt das Problem nicht an der Unit BackGround, sondern an meiner eigenen Matrix Unit ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 845
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Winux (L 2.0.11 FPC 3.2)
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: LCLBase in eigene Packages

Beitrag von fliegermichl »

Nicht mit der Unit sondern dem Namen der Datei.
Der Compiler würfelt dann die ppu Dateien durcheinander und weiss nachher nicht mehr aus welcher Quelldatei die erstellt wurde.
Er stellt nur fest, daß die Dateien nicht zusammenpassen und will die neu compilieren.

Leuchtet ja aber auch ein.
Wenn Du schreibst

Code: Alles auswählen

 
uses matrix;
 


Woher soll der Compiler dann wissen welche matrix.ppu du gerne hättest.

Wenn Du einfach dafür sorgst, daß der Name jeder Datei in Deinem Package systemweit einzigartig ist, wird das Problem nicht mehr auftauchen.

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

Re: LCLBase in eigene Packages

Beitrag von Mathias »

Ich werde bei Gelegenheit meine Dateien/Units umbenennen, ich muss mir nur noch einen geeignete Prefix ausdenken.
Es sind alles OpenGL-Routinen. Nur glxxxx will ich nicht unbedingt nehmen, da die Verwechslungsgefahr hier auch gross ist.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: LCLBase in eigene Packages

Beitrag von Komoluna »

cgl vielleicht? custom-gl...

MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

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

Re: LCLBase in eigene Packages

Beitrag von Mathias »

Ich habe jetzt überall ein Prefix hingesetzt.

So wie es aussieht, läuft es jetzt.

Danke ! :)

Oh das hat mich auch schon einige Stunden an Sucherei gekostet :-(

Das kann man laut sagen.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
kpmais
Beiträge: 24
Registriert: Di 26. Mai 2020, 08:51
OS, Lazarus, FPC: Winux (L 2.0.12, FPC 3.2.0; Debian/Win7)
CPU-Target: x86-64
Wohnort: Saarlouis/Saarland

Re: LCLBase in eigene Packages

Beitrag von kpmais »

Die Diskussion ist zwar schon ewig her - aber hat mich jetzt auf die richtige Spur gebracht. Wobei mir zwar noch immer unklar ist, wo das 'Doppelte Lottchen' sich versteckt - aber egal.
Danke in die Vergangenheit :)
Ich hatte schon nach stundenlangem Suchen und Recherchieren fast irre lachend mit einer Axt vor'm Laptop gestanden :evil: .
Ihr habt ihn gerettet ...... !!!!!! Schönen Dank vom Lappi :lol:

Antworten