FPC 3.2.2 findet existierende ppu unit nicht im Suchpfad

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
multiplatform-coder
Beiträge: 95
Registriert: Do 20. Apr 2023, 18:25

FPC 3.2.2 findet existierende ppu unit nicht im Suchpfad

Beitrag von multiplatform-coder »

Ich benutze fpc 3.2.2, der Compiler sagt mir Kann fpimage nicht finden obwohl diese Datei im Pfad existiert und such in der fp.cfg enthalten ist. Der Compiler sucht im erwarteten Verzeichnis, findet aber die Unit nicht. Gleiches passiert mit fppixlcanv.ppu
Die Datei existiert, hat die normale Größe, das Verzeichnis liegt im Suchpfad. Welche Bedingungen lassen FPC eine existierendes ppu File ignorieren?

fpimage.ppu umfasst 190956 Bytes Der engegeben Pfad wird duchsucht aber die Unit wird dennoch ignoriert Die Unit liegt in $fpctarget\fcl-image und ist auch objektiv vorhanden, mit dir xxx geprüft

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 735
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.5 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
Kontaktdaten:

Re: FPC 3.2.2 findet existierende ppu unit nicht im Suchpfad

Beitrag von Niesi »

Windows?
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7381
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: FPC 3.2.2 findet existierende ppu unit nicht im Suchpfad

Beitrag von af0815 »

Er schaut nicht nur auf die Dateinamen, sondern prüft auch ob die ppu zum aktuellen System passt.

Nur das die Datei vorhanden ist, sagt nichts darüber aus, ob sie auch verwendet werden kann. Mit ppudump kann man sich das ansehen. Ist beim FPC dabei.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

wp_xyz
Beiträge: 5461
Registriert: Fr 8. Apr 2011, 09:01

Re: FPC 3.2.2 findet existierende ppu unit nicht im Suchpfad

Beitrag von wp_xyz »

multiplatform-coder hat geschrieben: Mo 13. Jul 2026, 09:55 der Compiler sagt mir Kann fpimage nicht finden obwohl diese Datei im Pfad existiert
Wieso dieser Hinweis explizit? Hast du etwa den Pfad zu einer fpc- oder Lazarus-Datei unter "Andere Units" im Projekt eingetragen? Damit wird diese Datei als Bestandteil deines Projekts neu kompiliert. Alle Units, die von dieser Datei abhängen, müssen nun auch neu kompiliert werden, und wenn du deren Pfad nicht auch unter "Andere Units" eingetragen hast, werden diese Units vom Compiler nicht gefunden.

Grundprinzip: Lass die Finger von "Andere Units". Nur wenn du die Units deines Projekts in Unterordnern organisiert hast, darfst du diese dort eintragen. Auf keinen Fall irgendwelche FPC- oder Lazarus-Units (es sei denn, du weißt genau, was du tust).

multiplatform-coder
Beiträge: 95
Registriert: Do 20. Apr 2023, 18:25

Re: FPC 3.2.2 findet existierende ppu unit nicht im Suchpfad

Beitrag von multiplatform-coder »

Niesi hat geschrieben: Mo 13. Jul 2026, 10:04Windows?
Warum ist dese Info wichtig? Verhält sich der Compiler auf verschiedenen Plattformen unterschiedlich?

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 735
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.5 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
Kontaktdaten:

Re: FPC 3.2.2 findet existierende ppu unit nicht im Suchpfad

Beitrag von Niesi »

multiplatform-coder hat geschrieben: Mo 13. Jul 2026, 12:14
Niesi hat geschrieben: Mo 13. Jul 2026, 10:04Windows?
Warum ist dese Info wichtig? Verhält sich der Compiler auf verschiedenen Plattformen unterschiedlich?
Z. B. beachtet Linux Groß- und Kleinschreibung. Windows nicht.
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7381
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: FPC 3.2.2 findet existierende ppu unit nicht im Suchpfad

Beitrag von af0815 »

Arbeitest du nur mit dem FPC oder mit Lazarus ? Aus deinem ersten Post, würde ich FPC alleine vermuten. Dann ist natürlich einiges mehr beim Compilleraufruf zu übergeben, weil Lazarus das für einen im Hintergrund macht.

BTW die meisten Unterschiede gibt es nicht beim compilieren, sondern beim linken. Das ist stark abhängig vom Betriebssystem.
Zuletzt geändert von af0815 am Mo 13. Jul 2026, 12:32, insgesamt 1-mal geändert.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

multiplatform-coder
Beiträge: 95
Registriert: Do 20. Apr 2023, 18:25

Re: FPC 3.2.2 findet existierende ppu unit nicht im Suchpfad

Beitrag von multiplatform-coder »

wp_xyz hat geschrieben: Mo 13. Jul 2026, 11:16
multiplatform-coder hat geschrieben: Mo 13. Jul 2026, 09:55 der Compiler sagt mir Kann fpimage nicht finden obwohl diese Datei im Pfad existiert
Wieso dieser Hinweis explizit? Hast du etwa den Pfad zu einer fpc- oder Lazarus-Datei unter "Andere Units" im Projekt eingetragen? Damit wird diese Datei als Bestandteil deines Projekts neu kompiliert. Alle Units, die von dieser Datei abhängen, müssen nun auch neu kompiliert werden, und wenn du deren Pfad nicht auch unter "Andere Units" eingetragen hast, werden diese Units vom Compiler nicht gefunden.

Grundprinzip: Lass die Finger von "Andere Units". Nur wenn du die Units deines Projekts in Unterordnern organisiert hast, darfst du diese dort eintragen. Auf keinen Fall irgendwelche FPC- oder Lazarus-Units (es sei denn, du weißt genau, was du tust).
Aber wie ist das bei Units die bereits vorkompiliert sind wie eben fpImage oder fppixlcanv. Ausserdem dachte ich bisher dass "Andere Units zuerst mal andere vorkompilierte Units sind oder neue die extern entstanden sind und dann selbstverständlich neu compiliert werden müssen aber was ist wenn diese Neukompilieren schon m,al geschehenh ist und keine Änderung seit dem letzten Kompilieren erfolgt ist? Und nein ich habe das auf der Kommandozeile gemachr meine fpc.cfg sieht bei den Pfaden so aus

-FuF:/fpc/3.2.2/units/$fpctarget
-FuF:/fpc/3.2.2/units/$fpctarget/*
-FuF:/fpc/3.2.2/units/$fpctarget/rtl

Das /fcl-image Directory wird auch gefunden und innerhalb desselben auch die fpImage.ppu und auch die fppixlcanv.ppu also könnte $fpctarget/* bedeuten dass nach allen Units im $fpctarget directory gesucht wird bzw werden soll

multiplatform-coder
Beiträge: 95
Registriert: Do 20. Apr 2023, 18:25

Re: FPC 3.2.2 findet existierende ppu unit nicht im Suchpfad

Beitrag von multiplatform-coder »

af0815 hat geschrieben: Mo 13. Jul 2026, 12:29 Arbeitest du nur mit dem FPC oder mit Lazarus ? Aus deinem ersten Post, würde ich FPC alleine vermuten. Dann ist natürlich einiges mehr beim Compilleraufruf zu übergeben, weil Lazarus das für einen im Hintergrund macht.
Aktuell mit nur fpc, aber ich will später Lazarus dafür (für dieses Projekt) verwenden. Wie löst denn Lazarus sowas auf? Eine eigene IDE ist nämlixh mein Plan! Die muss ja dann auch die Pfade sinnvoll auflösen können, damit die Units gefunden werden.

multiplatform-coder
Beiträge: 95
Registriert: Do 20. Apr 2023, 18:25

Re: FPC 3.2.2 findet existierende ppu unit nicht im Suchpfad

Beitrag von multiplatform-coder »

Niesi hat geschrieben: Mo 13. Jul 2026, 12:18
multiplatform-coder hat geschrieben: Mo 13. Jul 2026, 12:14
Niesi hat geschrieben: Mo 13. Jul 2026, 10:04Windows?
Warum ist dese Info wichtig? Verhält sich der Compiler auf verschiedenen Plattformen unterschiedlich?
Z. B. beachtet Linux Groß- und Kleinschreibung. Windows nicht.
Verstehe, aber die Unitnamen sind in meinem Projekt genauso geschrieben wie in Freepascal.
Zuletzt geändert von multiplatform-coder am Mo 13. Jul 2026, 12:47, insgesamt 1-mal geändert.

multiplatform-coder
Beiträge: 95
Registriert: Do 20. Apr 2023, 18:25

Re: FPC 3.2.2 findet existierende ppu unit nicht im Suchpfad

Beitrag von multiplatform-coder »

af0815 hat geschrieben: Mo 13. Jul 2026, 10:54 Er schaut nicht nur auf die Dateinamen, sondern prüft auch ob die ppu zum aktuellen System passt.

Nur das die Datei vorhanden ist, sagt nichts darüber aus, ob sie auch verwendet werden kann. Mit ppudump kann man sich das ansehen. Ist beim FPC dabei.
Ich benutze Freepascal Version 3.2.2 Was muss denn angezeigt werden wenn die Unit korrekt ist und wie sehe ich wenn das Unit Format nicht ok ist? Allerdings habe ich fps aus dem Install paket installiert. Da sollte die Version eigentlich passen

Soner
Beiträge: 809
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: FPC 3.2.2 findet existierende ppu unit nicht im Suchpfad

Beitrag von Soner »

Ursache deines Problems kann meines Wissens nur drei Sachen sein:
1) fpc und units (Bittnes oder Betriebssystem) passen nicht zusammen. Das ist mir öfters passiert, weil ich öfters fpc selbst kompiliere.
2) Sowie wp geschrieben hat, du hast mit fpc-units irgend etwas gemacht, deshalb findet fpc passende Unit nicht mehr.
3) In Project-Einstellungen hast du anderen Target/BS ausgewählt.

Du kannst dein fpc prüfen, tippe einfach bei der Konsole fpc ein, dann bekommst du so etwas:

Code: Alles auswählen

Free Pascal Compiler version 3.2.2 [2026/06/06] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
D:\fpc\3.2.2\bin\x86_64-win64\fpc.exe [options] <inputfile> [options]
Aus der ersten Zeile kannst du entnehmen ob 32 oder 64 Bit ist "x86_64", also 64Bit. Aus der dritten Zeile wo es gespeichert ist. Also muss bei mir die RTL- und FCL-Units im Ordner "D:\fpc\3.2.2\units\x86_64-win64" liegen und "D:\fpc\3.2.2\bin\x86_64-win64\fpc.cfg" dorthin zeigen. Angaben wie "c:/fpc/3.2.2/units/$fpctarget" sind erlaubt, nur $fpctarget wird aufgelöst deshalb muss richtiger Ordnername existieren, bei mir "x86_64-win64".

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7381
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: FPC 3.2.2 findet existierende ppu unit nicht im Suchpfad

Beitrag von af0815 »

Ich habe mal ppudump angeworfen und mir die system.ppu und deine beiden ppu's anzeigen gelassen

Wichtig ist dabei der CRC von der system.ppu, der ist hier C712EA52 . Bei den anderen beiden Dateien muss dieser in der Interface Sektion unter system.ppu wieder auftauchen. Ist der gleich, wurde alles gegen die gleiche system.ppu gebildet. Dann kann der Linker die auch binden. Stimmt das nicht zusammen, ist bei der Installation was komisch.

Auch die richtige system.ppu muss man nehmen. Jeder CrossTarget hat seine eigene system.ppu.

Wenn man sich das ansieht kann man ein Problem mit den ppu's auschliessen, wenn alles zusammenpasst

Man kann auch versuchen den FPV mit der Option-vau aufzurufen. Da wird verdammt viel ausgegeben, auch die Infos zu den ganzen Units. Vielleicht sieht man dann dort wo er sucht und ev. in die Irre geschickt wird.
PU-Analyser Version 3.3.1
Copyright (c) 1998-2020 by the Free Pascal Development Team

Analyzing /home/xxxxx/data/lazdev/main_main/fpc/units/x86_64-linux/rtl/system.ppu
(v208)
LongVersion: 32
Byte size of PPU real: 10

Header
-------
Compiler version : 3.3.1
Target processor : x86_64
Target operating system : Linux-x86-64
Unit flags : static_linked, little_endian
FileSize (w/o header) : 1304116
Checksum : C712EA52
Interface Checksum : 373E6A77
Indirect Checksum : FC0819A3
Definitions stored : 3801
Symbols stored : 10938

Interface section
------------------
Module Name: System



PPU-Analyser Version 3.3.1
Copyright (c) 1998-2020 by the Free Pascal Development Team

Analyzing /home/xxxx/data/lazdev/main_main/fpc/units/x86_64-linux/fcl-image/fpim
age.ppu (v208)
LongVersion: 32
Byte size of PPU real: 10

Header
-------
Compiler version : 3.3.1
Target processor : x86_64
Target operating system : Linux-x86-64
Unit flags : static_linked, little_endian
FileSize (w/o header) : 190215
Checksum : 9C573321
Interface Checksum : 9C573321
Indirect Checksum : 149714CE
Definitions stored : 676
Symbols stored : 2209

Interface section
------------------
Module Name: FpImage

Source file 1 : fpimage.pp 2025/01/20 09:35:27
Source file 2 : fpcolors.inc 2025/01/20 09:35:27
Source file 3 : fpimage.inc 2026/05/19 08:22:50
Source file 4 : fphandler.inc 2025/01/20 09:35:27
Source file 5 : fppalette.inc 2025/01/20 09:35:27
Source file 6 : fpcolcnv.inc 2025/01/20 09:35:27
Source file 7 : fpcompactimg.inc 2026/05/19 08:22:50
Uses unit: System (Crc: C712EA52, IntfcCrc: 373E6A77, IndCrc: FC0819A3)
Uses unit: objpas (Crc: 231EAC51, IntfcCrc: 362EDB87, IndCrc: 660289AB)
Uses unit: sysutils (Crc: 28F52503, IntfcCrc: 466838C0, IndCrc: FD8CF5FC)
Uses unit: Classes (Crc: BAE6C08A, IntfcCrc: 8898CCD4, IndCrc: FD3FC1B6)
Link unit object file: fpimage.o (static )


PU-Analyser Version 3.3.1
Copyright (c) 1998-2020 by the Free Pascal Development Team

Analyzing /home/xxxx/data/lazdev/main_main/fpc/units/x86_64-linux/fcl-image/fppi
xlcanv.ppu (v208)
LongVersion: 32
Byte size of PPU real: 10

Header
-------
Compiler version : 3.3.1
Target processor : x86_64
Target operating system : Linux-x86-64
Unit flags : static_linked, little_endian
FileSize (w/o header) : 48697
Checksum : 43A55993
Interface Checksum : 43A55993
Indirect Checksum : AFADE73F
Definitions stored : 156
Symbols stored : 554

Interface section
------------------
Module Name: FPPixlCanv

Source file 1 : fppixlcanv.pp 2025/01/20 09:35:27
Uses unit: System (Crc: C712EA52, IntfcCrc: 373E6A77, IndCrc: FC0819A3)
Uses unit: objpas (Crc: 231EAC51, IntfcCrc: 362EDB87, IndCrc: 660289AB)
Uses unit: sysutils (Crc: 28F52503, IntfcCrc: 466838C0, IndCrc: FD8CF5FC)
Uses unit: Classes (Crc: BAE6C08A, IntfcCrc: 8898CCD4, IndCrc: FD3FC1B6)
Uses unit: FpImage (Crc: 9C573321, IntfcCrc: 9C573321, IndCrc: 149714CE)
Uses unit: FPCanvas (Crc: D84F8E7E, IntfcCrc: D84F8E7E, IndCrc: 121935AB)
Uses unit: PixTools (Crc: 64CA3694, IntfcCrc: 64CA3694, IndCrc: B9C276D4)
Uses unit: Ellipses (Crc: EE0DB497, IntfcCrc: EE0DB497, IndCrc: ABEDBF06)
Uses unit: PolygonFillTools (Crc: 8326407C, IntfcCrc: 8326407C, IndCrc: BF499E3B
)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Mattias
Lazarusforum e. V.
Beiträge: 196
Registriert: Do 22. Mai 2008, 15:14
OS, Lazarus, FPC: LinuxOSX (L head FPC head)
CPU-Target: xxBit

Re: FPC 3.2.2 findet existierende ppu unit nicht im Suchpfad

Beitrag von Mattias »

multiplatform-coder hat geschrieben: Mo 13. Jul 2026, 09:55 Ich benutze fpc 3.2.2, der Compiler sagt mir Kann fpimage nicht finden obwohl diese Datei im Pfad existiert und such in der fp.cfg enthalten ist.
Kompiliere mit -vt und fpc sagt dir, wo er sucht und warum eine Datei nicht genutzt wurde.

Antworten