Difference between revisions of "Cross-compilation from Win32 to GO32v2/hu"
m |
m |
||
Line 3: | Line 3: | ||
− | + | Általánosságban elmondható, hogy az FPC támogatja a keresztfordítást, feltéve hogy rendelkezel a szükséges programokkal (assembler és linker) abban a bin könyvtárban ahová az FPC telepítve lett ((ez a i386-win32 a Win32 esetében). Ezek olyan programok melyek a gazdarendszeren (amelyen fordítasz) futnak, de az (eltérő) célrendszeren futtatható binárisokat hoznak létre. E programok fájlneveinek elején a célrendszer meghatározásának ott kell lennie (pl.: "i386-linux-as.exe" vagy "i386-go32v2-ld.exe"). | |
− | Amikor kifejezetten GO32v2 célrendszerről beszélünk Win32 alatt, Akkor tobb lehetséges megoldás kínálkozik. A szokásos eljárás (működik GO32v2 esetén is), hogy elkészítjük a valódi keresztfordító programokat, például lefordítjuk az as.exe GO32v2 változatát a GNU C Win32 változatának segítségével (Cygwin vagy MingW32), hogy Win32 alatt valódi GO32v2 binárisokat hozhassunk létre. Ez az egyetlen járható út bizonyos rendszereken (Linux, FreeBSD, Netware etc.). | + | Amikor kifejezetten GO32v2 célrendszerről beszélünk Win32 alatt, Akkor tobb lehetséges megoldás kínálkozik. A szokásos eljárás (működik GO32v2 esetén is), hogy elkészítjük a valódi keresztfordító programokat, például lefordítjuk az as.exe GO32v2 változatát a GNU C Win32 változatának segítségével (Cygwin vagy MingW32), hogy Win32 alatt valódi GO32v2 binárisokat hozhassunk létre. Ez az egyetlen járható út bizonyos rendszereken (Linux, FreeBSD, Netware etc.).<!--This is the only possible solution for platforms for which there isn't emulation layer for running "their" binaries (Linux, FreeBSD, Netware etc.).-->Néhány gazdarendszer-célrendszer kombinációhoz előre elkészített keresztfordító eszközök letölthetők az [ftp://ftp.freepascal.org/pub/fpc/contrib/cross/ FTP szerverünkről] - ha elkészítetted ezeket más rendszerek kombinációjához is, vagy valamelyikhez új változatot készítettél (és sikeresen tesztelted is), szívesen fogadjuk ha közzéteszed őket. |
− | A második lehetőség, hogy kihasználjuk a WinXX képességét a DOS binárisok futtatására és csak bemásoljuk a GNU eszközök GO32v2 változatait egy új helyre más néven. Ez azonban bizonyos korlátozásokat von magával (pl.: a parancssorok hosszának maximuma), de általában működik (bár nem hiszem hogy ez a jobb megoldás - viszont az egyszerűbb).--> | + | A második lehetőség, hogy kihasználjuk a WinXX képességét a DOS binárisok futtatására és csak bemásoljuk a GNU eszközök GO32v2 változatait egy új helyre más néven. Ez azonban bizonyos korlátozásokat von magával (pl.: a parancssorok hosszának maximuma), de általában működik (bár nem hiszem hogy ez a jobb megoldás - viszont az egyszerűbb). |
+ | <!--The third possibility is using DOS emulation provided by WinXX to avoid cross-compilation. If this works for you (see "Creating GO32v2 binaries under WinXX DOS box" below for more detailed information), this is the easiest solution. However, you are completely on your own there, since the WinXX emulation of DOS is far from being perfect and different WinXX versions impose various different limitations and issues one may need to face.--> | ||
− | |||
− | |||
Természetesen minkét esetben mind a kettő RTL elérhető legyen. A GO32v2 fordító az RTL unitokat a /units/go32v2/rtl könyvtárban keresi (hogy képes legyen futni normál DOS környezetben is amely csak 8.3 formátumú fájlneveket támogat), viszont a Win32 fordító (az IDE beépített fordítója) a könyvtárneveket a célrendszer teljes nevével várja (i386-go32v2), ezért át kell nevezned a GO32v2 csomagban terjesztett könyvtárat (ha már nem akarod többé használni az eredeti Go32v2 fordítót), vagy készíts egy másolatot. | Természetesen minkét esetben mind a kettő RTL elérhető legyen. A GO32v2 fordító az RTL unitokat a /units/go32v2/rtl könyvtárban keresi (hogy képes legyen futni normál DOS környezetben is amely csak 8.3 formátumú fájlneveket támogat), viszont a Win32 fordító (az IDE beépített fordítója) a könyvtárneveket a célrendszer teljes nevével várja (i386-go32v2), ezért át kell nevezned a GO32v2 csomagban terjesztett könyvtárat (ha már nem akarod többé használni az eredeti Go32v2 fordítót), vagy készíts egy másolatot. | ||
Line 19: | Line 18: | ||
=== GO32v2 binárisok létrehozása a WinXX DOS ablakában === | === GO32v2 binárisok létrehozása a WinXX DOS ablakában === | ||
− | + | Sima DOS programokat a következő módon tudsz létrehozni Win32 rendszeren: Tepepítsd az FPC GO32v2 változatát Win32 alatt a \ppdos könyvtárba (vagy más helyre, melynek neve 8.3 formátumú). Telepítsd az FPC Win32 változatát a \ppwin könyvtárba. Készítsd el a programot a Win32 változattal. Amikor már minden jól működik, használd a parancssort (DOS ablak) és fordítsd le a forráskódoda GO32v2 változatával (természetesen tudatnod kell a fordítóval (paraméterekkel a parancssorban), hogy hol találhatók a unit-jaid. A kapott *.exe rendesen fut majd amíg a DPMI elérhető (a *.exe programoddal együtt kell terjesztened a cwsdpmi.exe fájlt, amely megtalálható az FPC könyvtárában). | |
− | + | Ha nem akarsz különálló DPMI kezelőt akkor a következő eljárások egyikét kell alkalmaznod vagy sima DOS alatt kell fordítanod a programod (a Win98 megengedi a DOS-ba bootolást). A hosszú fájlnevek problémájának elkerülése érdekében a "subst" parancsot használhatod, pl.: "subst b: c:\documents...." parancs hatására a B: meghajón találod majd azokat a fájlokat melyek egyébkénta c:\documents... könyvtárban találhatók (ez a megoldás akkor is jól működik ha DOS ablakban kell bajlódni a Win32 hosszú fájlnevű könyvtárszerkezetével). |
Revision as of 19:39, 11 June 2009
Template:Translate Keresztfordítás Windows rendszeren GO32v2-re
Általánosságban elmondható, hogy az FPC támogatja a keresztfordítást, feltéve hogy rendelkezel a szükséges programokkal (assembler és linker) abban a bin könyvtárban ahová az FPC telepítve lett ((ez a i386-win32 a Win32 esetében). Ezek olyan programok melyek a gazdarendszeren (amelyen fordítasz) futnak, de az (eltérő) célrendszeren futtatható binárisokat hoznak létre. E programok fájlneveinek elején a célrendszer meghatározásának ott kell lennie (pl.: "i386-linux-as.exe" vagy "i386-go32v2-ld.exe").
Amikor kifejezetten GO32v2 célrendszerről beszélünk Win32 alatt, Akkor tobb lehetséges megoldás kínálkozik. A szokásos eljárás (működik GO32v2 esetén is), hogy elkészítjük a valódi keresztfordító programokat, például lefordítjuk az as.exe GO32v2 változatát a GNU C Win32 változatának segítségével (Cygwin vagy MingW32), hogy Win32 alatt valódi GO32v2 binárisokat hozhassunk létre. Ez az egyetlen járható út bizonyos rendszereken (Linux, FreeBSD, Netware etc.).Néhány gazdarendszer-célrendszer kombinációhoz előre elkészített keresztfordító eszközök letölthetők az FTP szerverünkről - ha elkészítetted ezeket más rendszerek kombinációjához is, vagy valamelyikhez új változatot készítettél (és sikeresen tesztelted is), szívesen fogadjuk ha közzéteszed őket.
A második lehetőség, hogy kihasználjuk a WinXX képességét a DOS binárisok futtatására és csak bemásoljuk a GNU eszközök GO32v2 változatait egy új helyre más néven. Ez azonban bizonyos korlátozásokat von magával (pl.: a parancssorok hosszának maximuma), de általában működik (bár nem hiszem hogy ez a jobb megoldás - viszont az egyszerűbb).
Természetesen minkét esetben mind a kettő RTL elérhető legyen. A GO32v2 fordító az RTL unitokat a /units/go32v2/rtl könyvtárban keresi (hogy képes legyen futni normál DOS környezetben is amely csak 8.3 formátumú fájlneveket támogat), viszont a Win32 fordító (az IDE beépített fordítója) a könyvtárneveket a célrendszer teljes nevével várja (i386-go32v2), ezért át kell nevezned a GO32v2 csomagban terjesztett könyvtárat (ha már nem akarod többé használni az eredeti Go32v2 fordítót), vagy készíts egy másolatot.
Végül, a debugger (hibakereső) a kersztfordított program esetén (a GO32v2 bináris hibakeresése Win32 IDE-ben) nem lehetséges jelenleg. A megoldás a GO32v2 IDE (vagy önálló GO32v2 gdb) használata.
További információkat a keresztfordításról FPC-vel a Keresztfordítás és a Keresztfordítás Windows-ra Linux renszeren című részekben találsz (a leírások elsődlegesen a Lazarus használatát mutatják be, de tartalmaznak FPC-re vonatkozó információkat is). A fordító létrehozásáról (részben a keresztfordítóról is) információkat találhatsz a buildfaq részben.
GO32v2 binárisok létrehozása a WinXX DOS ablakában
Sima DOS programokat a következő módon tudsz létrehozni Win32 rendszeren: Tepepítsd az FPC GO32v2 változatát Win32 alatt a \ppdos könyvtárba (vagy más helyre, melynek neve 8.3 formátumú). Telepítsd az FPC Win32 változatát a \ppwin könyvtárba. Készítsd el a programot a Win32 változattal. Amikor már minden jól működik, használd a parancssort (DOS ablak) és fordítsd le a forráskódoda GO32v2 változatával (természetesen tudatnod kell a fordítóval (paraméterekkel a parancssorban), hogy hol találhatók a unit-jaid. A kapott *.exe rendesen fut majd amíg a DPMI elérhető (a *.exe programoddal együtt kell terjesztened a cwsdpmi.exe fájlt, amely megtalálható az FPC könyvtárában). Ha nem akarsz különálló DPMI kezelőt akkor a következő eljárások egyikét kell alkalmaznod vagy sima DOS alatt kell fordítanod a programod (a Win98 megengedi a DOS-ba bootolást). A hosszú fájlnevek problémájának elkerülése érdekében a "subst" parancsot használhatod, pl.: "subst b: c:\documents...." parancs hatására a B: meghajón találod majd azokat a fájlokat melyek egyébkénta c:\documents... könyvtárban találhatók (ez a megoldás akkor is jól működik ha DOS ablakban kell bajlódni a Win32 hosszú fájlnevű könyvtárszerkezetével).