Difference between revisions of "Lazarus Faq/hu"
Line 292: | Line 292: | ||
=== Hibaüzenetet kapok amikor a Printer.BeginDoc-ot használom === | === Hibaüzenetet kapok amikor a Printer.BeginDoc-ot használom === | ||
− | |||
− | |||
− | + | A Printers unitot hozzá kell adnod a uses részhez. | |
− | |||
− | + | A Printer4Lazarus csomagot hozzá kell adnod a projekted függősdégeihez (requirement) az IDE menüjéből indulva: | |
− | + | "Project|Project Inspector|Add|New Requirement|Package Name:" | |
− | + | Ha a Printer4Lazarus csomag nincs a legördülő listában amikor megnyitod akkor telepíteni kell. A csomag része a Lazarus telepítésnek és megtalálható ebben a könyvtárban: | |
+ | "[lazarus installed directory]\components\printers" | ||
+ | |||
+ | Ha az alapértelmezett telepítési könyvtárat használtad akkor a [lazarus installed directory] útvonala: | ||
*Windows: c:\lazarus | *Windows: c:\lazarus | ||
*Linux: /usr/lib/lazarus | *Linux: /usr/lib/lazarus | ||
− | + | Ugyanez a megoldás alkalmazható ha a Printer.Printers-re hivatkozáskor kivétel (exception) keletkezik. | |
− | + | ||
=== Miért egyenlő a TForm.ClientWidth/ClientHeight és a TForm.Width/Height === | === Miért egyenlő a TForm.ClientWidth/ClientHeight és a TForm.Width/Height === | ||
<!-- | <!-- |
Revision as of 09:10, 4 August 2010
│
العربية (ar) │
Deutsch (de) │
English (en) │
español (es) │
français (fr) │
magyar (hu) │
italiano (it) │
日本語 (ja) │
한국어 (ko) │
português (pt) │
русский (ru) │
slovenčina (sk) │
中文(中国大陆) (zh_CN) │
中文(台灣) (zh_TW) │
Lazarus GY.I.K.
folyamatban...
Általános
Miért olyan nagyok a létrehozott binárisok?
A binárisok azért nagyok, mert hibakeresési információkat is tartalmaznak, amelyekre a gdb (GNU Debugger) használatakor van szükség.
A fordítónak van egy kapcsolója amellyel el lehet távolítani a hibakeresési információkat a futtatható állományból (-Xs), de egy hiba miatt (a 2.0.2 és korábbi változatokban) ez nem működik megfelelően. A hiba már javítva van a fordító 2.0.4 és későbbi változataiban.
Használhatod a 'strip' nevű programot a hibakeresési szimbólumok eltávolításához a futtatható állományból. Ez a lazarus könyvtárában található (például: lazarus\fpc\bin\i386-win32\).
Csak írd a parancssorba: "strip --strip-all <a_futtatható_fájl_neve_útvonallal>".
Ha még kisebbre akarod a programod méretét, kipróbálhatod az UPX programot. Az UPX egy nagyon jó tömörítő kifejezetten futtatható állományok tömörítéséhez. It includes no memory overhead due to in-place decompression. Nagyon gyorsan tömöríti ki az állományokat (~10 MB/másodperc egy Pentium 133 gépen).
Az UPX hazsnálatához írd a parancssorba: "upx <a_futtatható_fájl_neve_útvonallal>".
Miután mindkét parancs (strip és upx) is lefutott, egy Lazarus-szal készített egyszerű GUI alkalmazás mérete kb. ennyi lesz:
- ~ 700kb Linux-on
- ~ 420kb Windows-on
Részletesebb választ az UPX használatának esetleges hátrányairól is, itt olvashatsz: Size Matters (angolul).
Fontos megjegyezni, hogy a lazarus 'hello world' példaprogram már eleve tartalmaz nagyon sok fontos összetevőt. Tartalmazza:
- XML kezelő függvénytár
- Képkezelő függvénytár png, xpm, bmp és ico fájlokhoz
- Majdnem minden widget-et a LCL-ből (Lazarus Component Library)
- Az teljes Free Pascal Runtime Library-t
Ezért nagyon nagy, de már majdnem mindent tartalmaz amire egy a valódi világnak készülő és komoly alkalmazásnak szüksége lehet.
A Lazarus által készített futtatható állományok nagy mérettel kezdődnek, de csak lassan nőnek, köszönhetően a Free Pascal fordítónak és a módnak ahogy a lazarus ablakok működik. Egy c++ projekt (csak példa, de más nyelvekre / eszközökre is igaz) kis mérettel kezdődneka 'hello world' esetében, de méretük gyorsan a sokszorosára nő amikor egy szükséged van összetevőkre egy komoly alkalmazás írásához.
Gyors útmutató a Lazarus/FPC alkalmazások méretének csökkentéséhez (tesztelve a Lazarus 0.9.26 változatával)
- 1. "Project|Project Options|Compiler Options|Code|Smart Linkable (-CX)" -> Bejelölve
- 2. "Project|Project Options|Compiler Options|Linking|Debugging|" minden törölve kivéve a "Strip Symbols From Executable (-Xs)" -> Bejelölve
- 3. "Project|Project Options|Compiler Options|Linking|Link Style|Link Smart (-XX)" -> Bejelölve
A legfontosabb elem a 2. Egy egyszerű alkalmazás esetén a futtatható állomány mérete 1-3 MB körül lesz 15-20 MB helyett. Ezen a ponton megpróbálhatod ezt: "Project|Project Options|Compiler Options|Code|Optimizations|smaller rather than faster" -> Bejelölve (Figyelem: ez csökkentheti a tejesítményt)
- 4. (Esetleg) Futtasd az "UPX <te_futtatható_programod>" parancsot a bináris állomány tömörítéséhez a -2 vagy -3 paraméterrel (Figyelem: mint fentebb olvashattad, az UPX használatának lehetnek hátrányai).
Méretek változása egy üres alkalmazás esetén, beállítások és operációs rendszerek függvényében
A tesztekhez változatok: Lazarus 0.9.29 és FPC 2.4 (Windows-on FPC 2.2.4). Az Optimized compiler a fentebbi tanácsok alkalmazását jelenti UPX használata nélkül. A Default Lazarus pedig azt ahogy telepítve lett a csomagból/telepítővel. Az LCL without debug informations jelentése, hogy a Lazarus IDE és LCL hibakeresési információk nélküli (-g-) újraépítése után.
Default Lazarus | LCL without debug informations | |||
Ubuntu 64 bits / Lazarus 64 bits | ||||
Default application | 13,4 Mb | 7,5 Mb / 8 | ||
Optimized compiler | 4,4 Mb | 2,70 Mb (0.29svn FPC2.4 2,5) | ||
Ubuntu 32 bits / Lazarus 32 bits | ||||
Default application | 19,6 Mb | 5,7 Mb | ||
Optimized compiler | 2,9 Mb | 1,6 Mb | ||
Windows XP 32 bits / Lazarus 32 bits | ||||
Default application | 11,8 Mb | 2,14 Mb | ||
Optimized compiler | 1,62 Mb | 1,50 Mb | ||
Windows Seven 64 bits / Lazarus 64 bits | ||||
Default application | 12,3 Mb | 3,20 Mb | ||
Optimized compiler | 2,14 Mb | 2,16 Mb |
Miért lassú az alkalmazások építése Windows-on?
Ez a hiba javítva lett az FPC 2.2 és a Lazarus 0.9.24 változataiban. Frissítsd a Lazarus-t. Régebbi változatokkal kapcsolatban olvasd el a következő szöveget.
Általánosságban elmondható, hogy a fordítási idő Windows-on több időt vesz igénybe, mint más rendszereken, mert a GNU Linker, amit a Free Pascal használ lassú ezen a rendszeren. Ez a jelenség csak a Windows-on áll fenn, és csak a régebbi gép (1Ghz alatt) valamint kevés memória (128MB vagy kevesebb) esetén zavaró.
Ezen kívül, ha az LCL-t a "smartlink" kapcsolóval használod akkor az összefűzés sokkal lassabb lesz. Egy leírás erről itt található: File size and smartlinking (angolul - kidolgozás alatt)
Egy belső összefűző (linker) lett kifejlesztve, de csak a Free Pascal 2.2 változatától kezdve lesz elérhető (természetesen az SVN-ből is elérhető). Látványosan lecsökkenti az összefűzés idejét.
Megjegyzés: A 2.1.1 változat Windows-on egy olyan belső összefűzőt használ amely már egy kicsit gyorsabb. Az ezzel újrafordított Lazarus kb. 280MB-ot foglal el.
Melyikre van szükségem: ppc386.cfg vagy fpc.cfg?
Csak az fpc.cfg kell neked. Így a fordító tudja hogy hol vannak a függvénytárak.
Hogyan fordítsam a lazarus-t?
Valahogy így:
$ cd lazarus $ make clean all
Hogyan fordíthatok más projekteket, amik az LCL-en az alapulnak?
Ha nem használhatod az IDE-t a fordításhoz, használd a 'lazbuild' programot. Ez egy parancssoros változata az IDE-nek, lazarus projektek és csomagok építéséhez. Ha az LCL alkalmazást az IDE és a lazbuild nélkül akarod elkészíteni, add következő sorokat az fpc.cfg fájlhoz:
# searchpath for other toolkits (Linux) -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/{Készleted}
# searchpath for other toolkits (Windows) -Fu/{LazarusKönyvtárad}/components/units/{Készleted}
- Ahol {a Készleted} a következők lehetnek: gtk2, gnome, qt vagy win32. Ez után futtasd ezt a parancsot:
- ppc386 projekted.pp
Megjegyzés: Ne felejtsd el telepíteni a fejlesztői csomagokat az adott készlethez, különben egy ehhez hasonló üzenetet kaphatsz: 'Linker message: cannot find -l'.
Melyik FPC változatra van szükség?
A Lazarus 0.9.28 legalább az FPC 2.4 változatát igényli.
Nem tudom fordítani a Lazarus-t
- Ellenőrizd, hogy a fordító megfelő változatát használod
- Ellenőrizd, hogy a függvénytárak (fpc) ugyanehhez a változathoz valók
- Ellenőrizd, hogy a fordító telepítési útvonalának nevében vannak-e szóközök. Ne legyenek!
- Ellenőrizd, hogy van-e fpc.cfg fájl és nincs régi ppc386.cfg
- Nézd át az operációs rendszerrel összefüggő GY.I.K.-t
Amikor egy projektet fordítok, hibaüzenetet kapok
"Cannot find Unit interfaces". Hogyan oldjam meg?
Ez azt jelenti hogy a fordító nem találja az 'interfaces.ppu' fájlt vagy azt jelenti, hogy talált, de hibás vagy érvénytelen (régi).
Ez a unit megtalálható a "{LazarusDir}\lcl\units\{TargetCPU}-{TargetOS}\{LCLWidgetSet}\interfaces.ppu" útvonalon. Például: "/home/username/lazarus/lcl/units/i386-linux/gtk/interfaces.ppu".
Ellenőrizd, hogy csak ott van. Ha több változatod is van interfaces.ppu fájlból, akkor valószínűleg rosszak a beállításaid (például hozzáadtál egy LCL könyvtárat a keresési útvonalhoz). Töröld az interfaces.ppu minden példányát, kivéve egyet a fenti könyvtárban.
Ha más ablakelem-készletet (widgetset) választottál mint amivel a Lazarus készült, le kell fordítanod az LCL-t is ehhez az ablakelem-készletet.
Ha ott van, de mégis ezt a hibaüzenetet kapod akkor eltérő fordítót/rtl-t használsz a projekted fordításához, mint amivel a Lazarus IDE készült. A következők egyikét teheted:
- Építsd újra az LCL-t (vagy az egész Lazarus-t) az "Environmnent Options" között kiválasztott fordítóval. Ezt megteheted a "Tools|Build Lazarus" menüponttal. Előtte nézd át a vonatkozó beállításokat a "Tools|Configure Build Lazarus" menüpontra kattintva.
- Változtasd meg a kiválasztott fordítót az "Environment Options" között arra amelyikkel a Lazarus-t fordítottad. Figyelmesen nézd meg az "Environment Options" között, hogy a megfelelő útvonal van-e beállítva a "Lazarus Directory" és az "FPC sources directory" mezőben. Ellenőrizd, hogy csak egy változata legyen a fordító beállításait tartalmazó fpc.cfg fájlnak - ennek helye a /etc/ könyvtár Linux/Unix rendszereken vagy Windows esetén az a könyvtár ahol az FPC fordító található. Próbáld futtatni az "fpc -vt bogus" parancsot hogy ellenőrizhesd melyik fpc.cfg van használatban a rendszereden. Felesleges példányok maradhatnak amikor újabb változattal frissíted a fordítót; ezek a felhasználói könyvtáradban vagy abban a könyvtárban lehetnek amelyben az új fordítót építetted. TÖRÖLD EZEKET!
- Esetleg megváltoztathatod a projekt számára kiválasztott ablakelem-készletet. Egy példa: az "objectinspector" ami a Lazarus része alapértelmezés szerint gtk-ra van beállítva. Ennek fordítása biztosan előidézi a "Can't find unit interfaces" üzenetet Windows-on. Az ablakelemek átállítása "default(Win32)"-re megoldja a problémát: "Project|Project Options|Compiler Options...|LCL Widget Type (various)".
Amikor egy delphi projektet akarok fordítani Lazarus-szal, hibaüzenetet kapok
at the line :{$R *.DFM} Hogyan oldhatom meg ezt a problémát?
A Lazarus (vagy inkább a Linux) nem ismeri az adatforrásokat (resources), abban a formában ahogy a Delphi/Win32 használja. Ezért a Lazarus egy másik módot alkalmaz amely nagyjából egyenértékű vele. Használhatod a Delphi ablakelrendezéseket (.dfm fájlokat) a következő lépésekkel:
- Szükséged van a .dfm fájlok szöveges változatára. A D5 és újabb változatok ilyet készítenek alapértelmezés szerint. Ha régebbi fájljaid vannak: Alt+F12 hogy szövegként lásd aztán másolás/beillesztés. Ha szöveges .dfm fájlod van, csak másold egy .lfm fájlba.
- Készíts egy fájlt a lazres programmal (a lazarus/tools könyvtárban található): lazres formod.lrs formod.lfm
- Add a következő sorokat a "initialization" részhez:
initialization {$I formod.lrs}
Tartsd észben, hogy még nem minden tulajdonságot (property) támogat a Lazarus, amik a .dfm fájlokban előfordulhatnak, ezért esetleg összeomolhat.
Szerk: Az FPC 2.4.0 óta, a Delphi stílusú adatforrások is támogatottak, így már semmit sem kell megváltoztatnod. Megjegyzés: még mindig ajánlott a Lazarus Delphi project converter használata, mivel előfordulhatnak nem támogatott tulajdonságok.
'Identifier not found LazarusResources'.
Amikor a Lazarus létrehoz egy form-ot, hozzáad néhány unitot a unitod uses részéhez. Azonban Delphi unitok Lazarus unittá átalakításakor ez ez nem történik meg. Ezért neked kell hozzáadnod az LResources unitot a form unitjának uses részéhez.
Amikor egy objektum eseménykezelőjét hívom, pl. egy gomb az onclick()-jét akkor a következő hibaüzenetet kapom: 'ERROR unit not found: stdCtrls'
Ellenőrizd a "Project|Project Inspector"-ban, hogy a projekted az 'LCL' csomagokon alapul és hogy telepítetted az FPC forráskódjait.
A Lazarus a fejlesztőkörnyezet (IDE) és az LCL vizuális komponensek együttese. Minden egyéb, mint az IO, a Database, az FCL és az RTL az FPC által van biztosítva. Az IDE igényli az összes forráskód útvonalát.
Az FPC forráskódjainak útvonala beállítható a menüből indulva: "Environment|Environment Options|Files|FPC source directory"
Hogyan építhetek be egy kis fájlt a futtatható állományba, hogy ne legyen külön fájl? Hogyan építhetek be adatforrást (resource)?
Például:
/lazarus/path/tools/lazres sound.lrs sound1.wav sound2.wav ...
Létrehozza a sound.lrs fájlt a sound1.wav és sound2.wav fájlokat felhasználva.
Ezután illeszd a kódodba a form .lrs *után*:
... initialization {$i unit1.lrs} // ez a fő adatforrás fájl (első) {$i sound.lrs} // felhasználó által meghatározott adatforrás fájl end.
A programodban így használhatod:
Sound1AsString:=LazarusResources.Find('sound1').Value;
Mit jelentenek a különböző fájltípusok amiket a Lazarus használ?
A Lazarus Tutorial#The Lazarus files cikk részletesen, példákkal írja le a fájltipus kiterjesztéseket. Ez egy összefoglaló lista:
*.lpi
- Lazarus Project Információ fájl (XML formátum; tartalmazza a projekt egyedi beállításait)
*.lpr
- Lazarus Program fájl; a főprogram Pascal forráskódját tartalmazza
*.lfm
- Lazarus Form fájl; információkat tartalmaz egy form összes eleméről (egyedi, a Lazarus által használt szöveges formátum; a műveletek Pascal forráskóddal megírva a megfelelő
*.pas
fájlban találhatók) *.pas
vagy*.pp
- Pascal forráskódú Unit (tipikusan egy form-hoz tartozik amelynek adatai a megfelelő
*.lfm
fájlban találhatók) *.lrs
- Lazarus Resource fájl (adatforrás, ez egy generált fájl; nem szabad összetéveszteni a Windows adatforrás fájlokkal).
- Ilyen fájlokat a lazres (a Lazarus/Tools könyvtárban található) eszközzel lehet létrehozni a parancssorból indítva: lazres fajlom.lrs fajlom.lfm
*.ppu
- Lefordított unit
*.lpk
- Lazarus csomag (package) információ fájl. (XML formátum; a csomag egyedi beállításait tartalmazza)
Amikor egy szövegfájlt deklarálok így: var mytext: text; , Hibaüzenetet kapok: "Unit1.pas(32,15) Error: Error in type definition". Hogyan javíthatom?
A TControl osztály (class) rendelkezik egy Text nevű tulajdonsággal (property). Egy form-hoz tartozó eljárásban (method) ennek elérhetősége elsőbbséget élvez a System unitban található Text típushoz képest. Használhatod a TextFile típust, ami egy álnév a Text típus számára, vagy a típus megadásakor a típusnév elé írhatod a unit nevét.
var MyTextFile: TextFile; MyText: System.Text;
Hasonló jelenség előfordulhat a szöveges fájl azonosítók kiosztásakor és a fájlok bezárásakor is. A TForm rendelkezik assign és Close eljárással (method) is. Használhatod az AssignFile és CloseFile eljárásokat vagy beszúrhatod a System unit nevét.
Hibaüzenetet kapok amikor a Printer.BeginDoc-ot használom
A Printers unitot hozzá kell adnod a uses részhez.
A Printer4Lazarus csomagot hozzá kell adnod a projekted függősdégeihez (requirement) az IDE menüjéből indulva: "Project|Project Inspector|Add|New Requirement|Package Name:"
Ha a Printer4Lazarus csomag nincs a legördülő listában amikor megnyitod akkor telepíteni kell. A csomag része a Lazarus telepítésnek és megtalálható ebben a könyvtárban: "[lazarus installed directory]\components\printers"
Ha az alapértelmezett telepítési könyvtárat használtad akkor a [lazarus installed directory] útvonala:
- Windows: c:\lazarus
- Linux: /usr/lib/lazarus
Ugyanez a megoldás alkalmazható ha a Printer.Printers-re hivatkozáskor kivétel (exception) keletkezik.
Miért egyenlő a TForm.ClientWidth/ClientHeight és a TForm.Width/Height
Hibakereső (Debugger)
Hogyan láthatom a hibakereső kimenetét?
Hogyan figyelhetem a "property"-ket?
Miért nem mutatja a hibakereső az egyes Változókat/Struktúrákat ("no such symbol"/"incomplete type")
A következő hibakeresési problémák esetén:
- tulajdonságok (property-k)
- array of ... (dinamikus tömbök)
- változók beágyazott eljárásokban
- "no such symbol in context"
- "incomplete type"
olvasd el ezt a cikket: GDB Debugger Tips (angol)
Hogyan használható a hibakereső, csomagokban található FCL komponenseken Lazarus-szal
Közreműködés / Javítás a Lazarus-ban
Készítettem egy foltot (patch) amivel az IDE Üzenetek (Messages) ablaka a Forráskód-Szerkesztő (Source Code Editor) aljához rögzíthető
Ezeket a foltozásokat nem alkalmazzuk, mivel az ablakok kívánt összekapcsolási módjának csak egy kis része van kidolgozva bennük. A cél egy teljes rögzítéskezelő-rendszer elkészítése és használata. Egy teljes rögzítéskezelő-rendszer az IDE összes ablakát össze tudja kapcsolni a felhasználó által meghatározott módon. Például az üzenetek ablakát a forráskód-szerkesztő fölé vagy alá vagy... vagy semmit sehová. Minta:
+-------------------++--+ |menü || | +-------------------+| | +--++---------------+| | |PI|| Forráskód ||CE| +--+| Szerkesztő || | +--+| || | | |+---------------++--+ |OI|+-------------------+ | ||üzenetek | +--++-------------------+
A rögzítéskezelő tudja elmenteni az elrendezést és visszatölteni a következő betöltéskor. A rögzítéskezelőnek nem szükséges a fogd és vidd módszert használnia. Minden foltozgatás ami rögzítéskezelő nélkül kapcsolja össze az ablakokat, nehézzé teszi egy rögzítéskezelő kidolgozását és vissza lesz utasítva.
Ideiglenes megoldásként használhatod ezt a kiegészítést az IDE-hez: Manual Docker
Javítottam/fejlesztettem a Lazaruszon. Hogyan adhatom hozzá a változtatásokat a hivatalos Lazarus forráskódhoz?
Készíts egy foltot (patch) és küldd el a fejlesztőknek. Részletek itt találsz: Creating A Patch. (angolul)
Hogyan lehetek Lazarus fejlesztő, az SVN és a hibakövető (bug-tracker) kezelője?
Mindenek előtt: tanulj a Lazarus-ról, ezzel növelve a tudásod és a hozzáértésed. Kezdd a wiki cikkek olvasásával, olvasd át a Lazarus forráskódját, vess néhány pillantást a Lazarus Bug-Tracker, javíts ki néhány hibát, és ha úgy gondolod készen állsz, vedd fel a kapcsolatot a fejlesztőkkel a levelezőlistán.
Hol vannak a ... definiciók
Virtuális billentyű konstansok
A virtuális billentyű konstansok az LCLType unitban vannak definiálva. Add a uses részhez az LCLtype unitot.
Az IDE használata
Hogyan használhatom az "azonosító kiegészítés" ("identifier completion") lehetőséget?
Az azonosítók kiegészítése a ctrl+szóköz lenyomásával kérhető. Beállítható az automatikus kiegészítés késleltetése is, a menüből indulva: 'Environment|Editor Options|Code Tools|Automatic Features'.
Linux
A bináris változatot telepítettem, de egy egyszerű projekt forításakor a Lazarus ezt írja:: 'Fatal: Can't find unit CONTROLS'
A Lazarus lefordítható, de az összefűzés leáll ezzel: 'libgdk-pixbuf not found'
SuSE rendszeren ezt kapom: '/usr/bin/ld: cannot find -lgtk Error: Error while linking'
A Lazarus összeomlik 'runtime error 211' hibával, miután egy komponenst telepítettem
Amikor egy szálakkal (threads) dolgozó programot futtatok, hibaüzenetet kapok: 'runtime error 232'
Ubuntu Breezy/Mandriva KDE3 használatakor a betűk a Lazarus IDE-ben túl nagyok
Hogyan használhatnak a gtk programjaim különböző .rc fájlokat?
Ubuntu-t használok és nem tudok Gtk2-re fordítani, hiányzó függvénytárak miatt
Hogyan fordíthatok egy programot Gtk2-re?
Ezt az üzenetet kapom: "[WARNING] ** Multibyte character encodings (like UTF8) are not supported at the moment."
Windows
Amikor a 'cycle' fordítást használom, ezt kapom: 'The name specified is not recognized as an internal or external command, operable program or batch file.>& was unexpected at this time'.
A fordító könyvtárában van egy OS2 parancsfájl make.cmd névvel. Különböző Windows változatok is parancsfájlként ismerik fel ezt, törlöd, mert bár ez szükséges OS2-n, de gondot okoz Windows-on.
Amikor 'cycle' fordítást használom, ezt kapom: 'make[3]: ./ppc1.exe: Command not found'
Nem tudni miért, a make elfelejti az útvonalat. Próbáld meg a 'cycle' fordítást az alapkönyvtár beállításával futtatni, így: make cycle BASEDIR=your_fpc_source_dir_herecompiler
Amikor a Lazarus-t újra akarom fordítani (make parancsal), üzenetet kapok:
make.exe: * * * interfaces: No such file or directory (ENOENT). Stop.make.exe: * * * [interfaces_all] Error 2
Frissítened kell a make fájlt.
makefile:27: *** You need the GNU utils package to use this Makefile. Stop.
Ellenőrizd, hogy az FPC-t nem egy olyan útvonalra telepítetted, aminek a nevében szóköz is van. A Makefile-ban nem támogatott.
Hogyan adhatok a programomnak XP kinézetet, mint amilyen a Lazarus-nak is van?
A menüből indulva: "Project|Project Options|Use manifest to enables themes" legyen bejelölve.
Amikor egy Lazarus-szal készített alkalmazást futtatok, az DOS ablakkal indul
Add meg a-WG paramétert (Windows GUI) a fordító parancssorában vagy jelöld be a 'Windows GUI' jelölőnégyzetet a Lazarus IDE fordítói beállításai között (A menüből indulva: "Project|Project Options|Compiler Options|Linking|target OS Specific options|Win32 GUI application").
Mac OS X
Miért áll le a fordítás 'unknown section attribute: no_dead_strip' üzenettel?
A 'halott' kódok kiszedését nem támogatja az assembler és az összefűző (linker) az Xcode 1.5 előtt (elérhető a Mac OS X 10.3.9 változatban). Kapcsold ki a következő fordítói beállításokat:
- Code > Unit style > Smart linkable (-CX)
- Linking > Link Style > Link smart (-XX)
Engedélyek (Licencek)
Készíthetek kereskedelmi alkalmazásokat a Lazarus-szal?
Igen, az LCL az LGPL engedélyei szerint használható egy kivétellel, amely megengedi a statikus összefűzést (linkelést) az alkalmazásod forráskódjának közreadása nélkül. A változtatásokat és fejlesztéseket az LCL kódjában azonban annak forráskódjával együtt terjeszteni kell. A Lazarus IDE a GPL licenc hatálya alatt áll. Az LCL csak azokat a forráskódokat tartalmazza melyek az 'lcl' könyvtárban találhatók, egyéb kódokat nem szabad ide elhelyezni és ezzel álcázni.
Miért van egyes komponensek használata korlátozva kereskedelmi alkalmazásokban?
A Lazarus tartalmaz harmadik féltől származó komponenseket is. Ezek különböző engedélyek szerint használhatók. Ha használni szeretnéd őket, meg kell nézned az engedélyeket a csomagok forrásfájljaiban. A legtöbb harmadik féltől származó komponens a "components" könyvtárban található.
Honnan tudhatom meg, hogy egy komponens az LCL része-e?
Minden LCL unit az 'lcl' könyvtárban található. Az LCL részét képező unitok listája megtalálható a http://lazarus-ccr.sourceforge.net/docs/lcl/ címen. Ha kódodban egy itt fel nem sorolt unitot használsz, valószínűleg egy olyan komponenst használsz amely nem része az LCL-nek.
Készíthetek kereskedelmi bővítményt a Lazarus-hoz?
Igen, az IDEIntf nevű része az IDE-nek az LGPL engedélyei szerint használható az előbb említett kivétellel, így az abban megosztott adatstruktúrák nem köteleznek arra, hogy a bővítményedet vagy a tervező csomagodat a GPL hatálya alá helyezd. Szabadon választható bármilyen engedélyezésű bővítmény; nem akarjuk korlátozni a választást. Röviden: nem-GPL kompatibilis bővítmények használata is megengedett. Megjegyzendő, hogy nem megengedett egy már lefordított Lazarus terjesztése statikusan beépített, nem-GPL kompatibilis bővítményekkel; azonban szerintünk ez nem komoly korlátozás, mivel a Lazarus könnyen újrafordítható.
Közreműködők és megjegyzések
Ez az oldal az angol nyelvű oldal fordítása, mely az epikwiki változat alapján készült.