FPC message: Can not find unit/hu
│
Deutsch (de) │
English (en) │
français (fr) │
magyar (hu) │
FPC üzenet: A unit nem található
A szakaszok címei szándékosan maradtak az eredeti angol nyelvű hibaüzenetek.
Általánosságban
Példa:
unit1.pas(40,42) Fatal: Can't find unit forms
A fordító nem találja a kompatibilis forms.ppu fájlt és annak forrását sem (forms.pp vagy forms.pas vagy forms.p).
A fordító a unit útvonalakon keres. A unit útvonalak a következők:
- Az fpc.cfg fájlban megadva (Linux, MAC OS X, BSD: /etc/fpc.cfg)
- A Lazarus fordítási beállításai. Lásd: Project -> Compiler Options
- -> Paths -> Other unit files
- -> Inherited -> All inherited options -> unit path (if available)
Megjegyzés: Ilyen hibaüzenetet akkor is kaphatsz ha létezik a unit, mert az FPC ellenőrzi, hogy az adott unit érvényes-e (naprakész). A .ppu akkor tekinthető érvényesnek ha az összes fájl amire a unit épül érvényes. Ha egy másik FPC-t telepítesz akkor a rendszereden az összes unit érvénytelen lesz és újra kell fordítani őket. A lazarus-t érdemes terminál (parancssor) ablakban futtatni, hogy láthatóak legyenek az FPC hibaüzenetei.
Can't find unit interfaces
Az 'interfaces' unit az LCL része. Legalább egyszer használnod kell a programodban hogy beépítésre kerüljön az LCL felület (rendszerfüggő része. Például: gtk vagy win32). Ha ezt a hibaüzenetet kapod:
- Ellenőrizd hogy a projekt használja-e az LCL csomagot. A menüből indulva: "Project -> Project Inspector -> Required Packages". Ha nincs ott az LCL akkor kattints az 'Add' gombra, majd a 'New Requirement'-re, válaszd az LCL-t és nyomj az 'Ok'-ra;
- Ellenőrizd hogy a unit része a projektnek. Használd a "Project -> Add editor file to project" menüpontot;
- Ellenőrizd hogy az 'interfaces.ppu' elérhető a unitok keresési útvonalán, és hogy az 'interfaces.pp' ne legyen a unitok keresési útvonalán. Valamint, hogy scak egy 'interfaces.ppu' van a a unitok keresési útvonalán. A unitok keresési útvonalát megnézheted ha jobb gombal kattintasz a forráskód-szerkesztőben és a megjelenő menüben kiválasztod a "Unit Info -> Unit Paths" menüpontot;
- Ellenőrizd hogy a lefordított LCL illeszkedik-e a fordítóhoz. Például ha egy új fordítót telepítettél akkor az LCL újraépítése szükséges (pl.: az interfaces.ppu újraépítése is (ehhez egyes rendszereken rendszergazdaként kell bejelnetkezni) );
- Ellenőrizd hogy a projektet a megfelelő (aktuális) widgetset használatával fordítod. A menüből indulva: "Project -> Project Options -> Compiler Options -> Path -> LCL Widget Type (various)". Állítsd alapértelmezettre ("default (*****)") az alapértelmezett widgetset használatához. Ha nem az alapértelmezettet akarod használni akkor állítsd át bármire, és fordítsd újra az LCL-t az illető widgetset-re (win32/win64, gtk, gtk2, etc).
- Ellenőrizd hogy a megfelelő processzorra fordítasz. A menüből indulva: "Project -> Project Options -> Compiler Options -> Code -> Target CPU (-P)" és állítsd alapértelmezettre (Default) (vagy hagyd üresen).
Can't find unit LResources
Megoldható a "Tools/Build Lazarus" menüponttal.
Can't find unit System
Talán egy másik operációs rendszerre próbálod lefordítani a projektedet. A menüből indulva: "Project -> Compiler Options -> Code -> Target OS (-T)" és állítsd alapértelmezettre (Default) (vagy hagyd üresen).
Részletesebb leírás ezekkel kapcsolatban
Részletesebb leírást a unitok keresésével kapcsolatban itt találsz: Unit nem található - Hogyan találhatók meg a unit-ok