Difference between revisions of "Cross-compilation from Win32 to GO32v2/hu"

From Lazarus wiki
Jump to navigationJump to search
m
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Translate}}<!--{{Cross-compilation from Win32 to GO32v2}}-->
+
{{Cross-compilation from Win32 to GO32v2}}
<font size=7><b>Keresztfordítás Windows rendszeren GO32v2-re</b></font>
 
  
 +
<font size="7">Keresztfordítás Windows rendszeren GO32v2-re</font>
  
Hamarosan...<!--Á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 két 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íted más rendszerek kombinációjához ezeket, vagy valamelyikhez új változatot készítettél (és sikeresen tesztelted is), szívesen fogadjuk ha közzéteszed őket.
+
__NOTOC__
 +
Á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").
  
The second possibility is to take the advantage of WinXX being able to run DOS binaries and just copy the GO32v2 versions of GNU tools to a new location and different name. This has some limitations (e.g. with regard to maximum length of the command line), but it works in general (although I wouldn't consider this solution really supported one - however, it's an easier one).
+
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.
  
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.
+
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.-->
  
In any case, you need both RTLs available, of course. One additional issue here is that the GO32v2 compiler expects the RTL in /units/go32v2/rtl (to allow it to run even in plain DOS which suffers from 8.3 name length constraint), whereas the Win32 compiler (including that one integrated in our IDE) expects directories with full target names (i386-go32v2), so you need to either rename the directory distributed together with the native GO32v2 release (if you don't intend to use the native GO32v2 compiler any more), or create a copy.
+
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.
  
Finally, cross-debugging (debugging of GO32v2 binaries in Win32 IDE) isn't possible at the moment. The only possibility is to use GO32v2 IDE (or standalone GO32v2 gdb) directly.
+
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.
  
More information on cross-compilation with FPC may be found in [[Cross compiling]] and [[Cross compiling for Win32 under Linux]] (the latter primarily referring to Lazarus, but containing general FPC information too). Documentation for building the compiler (including some information about cross-compilation) may be found in [[buildfaq]] document.
+
További információkat a keresztfordításról FPC-vel a [[Cross compiling/hu|Keresztfordítás]] és a [[Cross compiling for Win32 under Linux/hu|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/hu|buildfaq]] részben.
  
 +
=== GO32v2 binárisok létrehozása a WinXX DOS ablakában ===
  
=== Creating GO32v2 binaries under WinXX DOS box ===
+
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).
  
A simple way to generate plain-DOS progs under Win32 is the following: Install the Go32V2 version under Win32 in e.g. \ppdos. Install an current Win32 version of fpc in e.g. \ppwin. Do your development with the Win32 version. After all runs and is fine use a Dos box (or a command-shell) and compile your source code via the command-line version of Go32v2 (of course you have to inform the compiler (via command line switches) about the location of your units..). The resulting *.exe runs fine as _long_ as DPMI is present (you may distribute your *.exe together with cwsdpmi.exe which is in your fpc directory). If you don't want a separate DPMI host you may use one of the ways described below or compile your program under plain DOS (in Win98 it suffices to boot in DOS mode and compile from there). To avoid problems with "long file names" you may use the "subst"-Command to access your files e.g. "subst b: c:\documents...." would let you find all files in b: which are located in c:\documents... (this is also a fine solution if you work in a cmd shell or Dos box and are annoyed by the long names of the Win32 directory structure).
+
 
-->
+
{{AutoCategory}}

Latest revision as of 15:26, 14 July 2015

English (en) magyar (hu) Bahasa Indonesia (id)

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).