Sign in Join
Wiki copytemporary

Cross compiling/hu: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1+## Contents
2+
3+ * 1 Előszó
4+ * 1.1 Gazda- és célrendszer ugyanolyan CPU-n
5+ * 1.2 Gazda és célrendszer eltérő CPU-n
6+ * 1.3 Assembler és linker
7+ * 1.4 Unit-ok a célrendszerhez
8+ * 1.5 Konfiguráció
9+ * 1.6 Alap műveletek
10+ * 2 Linux rendszeren
11+ * 2.1 Linux rendszerre
12+ * 2.2 Windows rendszerre
13+ * 2.3 Darwin vagy macOS rendszerre
14+ * 3 Windows rendszeren
15+ * 3.1 Linux rendszerre
16+ * 3.2 GO32v2 rendszerre
17+ * 4 Darwin (macOS) i386 rendszeren
18+ * 4.1 i386-ról powerpc-re
19+ * 4.2 Windows és Linux rendszerre (32 bit)
20+ * 5 Keresztfordítás GYIK (faq)
21+ * 5.1 Mire jó a keresztfordítás?
22+ * 5.2 Miért Unix-ról Windws-ra és nem a másik irányba?
23+ * 5.3 Több információt szeretnék a Free Pascal építéséről. Hol találok?
24+
125# Előszó
226
3-Ez egy rövid bevezető kezdőknek. A következőkben leírjuk hogyan állítsd be a rendszert keresztfordításhoz, ami azt jelenti, hogy futtatható állományokat hozhatsz létre más rendszerekhez mint amin a fordítást végzed - pl. Linux rendszeren dolgozva készíthetsz Win32 alkalmazásokat (és ugyanígy FreeBSD, Darwin, stb.). A rendszert melyen a fordítást végzed általában "gazdarendszer"-nek (fentebb ez a Linux) és azt a rendszert melyen a létrehozott binárist futtatni akarod majd "célrendszer"-nek nevezzük. A FreePascal egy fordító és forráskódból gépi kódodú bináris állományokat készít. Ez a bináris tartalmaz információkat arról is hogy az operációs rendszer milyen módon kezelje az állományt. Ezen kívül a binárisban hivatkozások vannak az operációs rendszeren alkalmazható műveletekre (API), ezért van különbség a Run-Time Library különböző operációs rendszerekhez szükséges változatai között. Mindezek miatt a készített bináris állományok rendszerfüggők. Maga a FreePascal nem igényel sok beállítást. Képes binárisokat készíteni sok rendszerhez, csak kérd meg rá.
27+Ez egy rövid bevezető kezdőknek. A következőkben leírjuk hogyan állítsd be a rendszert keresztfordításhoz, ami azt jelenti, hogy futtatható állományokat hozhatsz létre más rendszerekhez mint amin a fordítást végzed - pl. Linux rendszeren dolgozva készíthetsz Win32 alkalmazásokat (és ugyanígy FreeBSD, Darwin, stb.). A rendszert melyen a fordítást végzed általában "gazdarendszer"-nek (fentebb ez a Linux) és azt a rendszert melyen a létrehozott binárist futtatni akarod majd "célrendszer"-nek nevezzük. A FreePascal egy fordító és forráskódból gépi kódodú bináris állományokat készít. Ez a bináris tartalmaz információkat arról is hogy az operációs rendszer milyen módon kezelje az állományt. Ezen kívül a binárisban hivatkozások vannak az operációs rendszeren alkalmazható műveletekre (API), ezért van különbség a Run-Time Library különböző operációs rendszerekhez szükséges változatai között. Mindezek miatt a készített bináris állományok rendszerfüggők. Maga a FreePascal nem igényel sok beállítást. Képes binárisokat készíteni sok rendszerhez, csak kérd meg rá.
428
529## Gazda- és célrendszer ugyanolyan CPU-n
630
7-Az FPC úgy lett kialakítva hogy a fordító képes gépi kódot előállítani bizonyos CPU-khoz (a különböző CPU-k különböző gépi kódot igényelnek) és ismeri az adott CPU-n támogatott operációs rendszerek egyedi követelményeit. Ez azt jelenti, hogy keresztfordítást végezhetsz ugyanazzal a fordítóval (egyszerű kódfordításra használva) amíg kitartasz ugyanazon CPU mellett.
31+Az FPC úgy lett kialakítva hogy a fordító képes gépi kódot előállítani bizonyos CPU-khoz (a különböző CPU-k különböző gépi kódot igényelnek) és ismeri az adott CPU-n támogatott operációs rendszerek egyedi követelményeit. Ez azt jelenti, hogy keresztfordítást végezhetsz ugyanazzal a fordítóval (egyszerű kódfordításra használva) amíg kitartasz ugyanazon CPU mellett.
832
933## Gazda és célrendszer eltérő CPU-n
1034
11-Ha más típusú CPU számára kell binárist készíteni, akkor speciális keresztfordítóra van szükség, olyanra amely a gazdarendszeren fut, de képes a más típusú CPU gépi kódját létrehozni (az FPC esetében egy ilyen keresztfordítónak ismételten tudnia kell megcélozni az összes támogatott rendszert a cél CPU-n). Ez a keresztfordító általában ugyanabban a könyvtárban tárolható ahol az eredeti fordító is van. Ilyen keresztfordítót készíthetsz magad is, vagy használhatod a néhány rendszerhez előre elkészített és az FPC csapat által közvetlenül terjesztett változatokat is (általában hordozható eszközökön futó rendszerek ezek melyek többnyire nincsenek gazdarendszerként használva). Az FPC ezután képes kiválasztani a megfelelő fordítót (az eredetit vagy a keresztfordítót) a -P paraméterrel megadott cél CPU-hoz.
35+Ha más típusú CPU számára kell binárist készíteni, akkor speciális keresztfordítóra van szükség, olyanra amely a gazdarendszeren fut, de képes a más típusú CPU gépi kódját létrehozni (az FPC esetében egy ilyen keresztfordítónak ismételten tudnia kell megcélozni az összes támogatott rendszert a cél CPU-n). Ez a keresztfordító általában ugyanabban a könyvtárban tárolható ahol az eredeti fordító is van. Ilyen keresztfordítót készíthetsz magad is, vagy használhatod a néhány rendszerhez előre elkészített és az FPC csapat által közvetlenül terjesztett változatokat is (általában hordozható eszközökön futó rendszerek ezek melyek többnyire nincsenek gazdarendszerként használva). Az FPC ezután képes kiválasztani a megfelelő fordítót (az eredetit vagy a keresztfordítót) a -P paraméterrel megadott cél CPU-hoz.
1236
1337## Assembler és linker
1438
15-A fordító csak egy rész. Szükségünk van még assemblerre és a linkerre is. Az FPC rendelkezik beépített assemblerrel és/vagy linkerrel néhány rendszerhez, más rendszereken külső eszközökre van szüksége. Ezek az eszközök általában nem képesek binárisokat létrehozni eltérő rendszerek számára. Ezért van, hogy speciális linkert 'ld' és assemblert 'as' használunk minden célrendszeren. Ezeket nevezzük [[Binutils/hu|binutils]]-nak.
39+A fordító csak egy rész. Szükségünk van még assemblerre és a linkerre is. Az FPC rendelkezik beépített assemblerrel és/vagy linkerrel néhány rendszerhez, más rendszereken külső eszközökre van szüksége. Ezek az eszközök általában nem képesek binárisokat létrehozni eltérő rendszerek számára. Ezért van, hogy speciális linkert 'ld' és assemblert 'as' használunk minden célrendszeren. Ezeket nevezzük [[Binutils/hu|binutils]]-nak.
1640
1741## Unit-ok a célrendszerhez
1842
19-Miután létrehoztuk (vagy megszereztük/telepítettük) a keresztfordító eszközöket, szükség lesz még az FPC RTL és további unitokra a választott célrendszerre lefordítva. Például minden célrendszerhez eltérő system.ppu (System unit) fájlra van szükség, stb. Ezek a unitok létrehozhatók akár a célrendszerre fordításhoz beállított fordítóval, vagy esetleg használhatod a hivatalosan terjesztett unitokat, amelyek pontosan megegyező FPC változattal készültek illetve lettek kiadva (ha elérhető a gazdarendszeren használható formátumban).
43+Miután létrehoztuk (vagy megszereztük/telepítettük) a keresztfordító eszközöket, szükség lesz még az FPC RTL és további unitokra a választott célrendszerre lefordítva. Például minden célrendszerhez eltérő system.ppu (System unit) fájlra van szükség, stb. Ezek a unitok létrehozhatók akár a célrendszerre fordításhoz beállított fordítóval, vagy esetleg használhatod a hivatalosan terjesztett unitokat, amelyek pontosan megegyező FPC változattal készültek illetve lettek kiadva (ha elérhető a gazdarendszeren használható formátumban).
2044
2145## Konfiguráció
2246
23-Miután az fpc config fájl beállítása megtörtént, a keresztfordítás könnyűvé válik, elfeledkezhetsz az unalmas részletekről. Ugyanezt kell tenni az LCL (lazarus component lybrary) esetén is (ha Lazarus-t használsz). Ezután már fordíthatod is a pascal programokat az eltérő célrendszerre. Az elkészült binárisok átmásolhatok egy olyan gépre amin a célrendszer fut vagy futtathatók emulátorban (pld.: Wine - Win32 binárisok futtatására Linux rendszeren, stb.).
47+Miután az fpc config fájl beállítása megtörtént, a keresztfordítás könnyűvé válik, elfeledkezhetsz az unalmas részletekről. Ugyanezt kell tenni az LCL (lazarus component lybrary) esetén is (ha Lazarus-t használsz). Ezután már fordíthatod is a pascal programokat az eltérő célrendszerre. Az elkészült binárisok átmásolhatok egy olyan gépre amin a célrendszer fut vagy futtathatók emulátorban (pld.: Wine - Win32 binárisok futtatására Linux rendszeren, stb.).
2448
2549## Alap műveletek
2650
27-Van néhány általános művelet a keresztfordításban amit minden esetben el kell végezned:
51+Van néhány általános művelet a keresztfordításban amit minden esetben el kell végezned:
2852
29-1. Szükség van a FreePascal fordítóra ahhoz a rendszerhez amelyen a fordítást el akarod végezni.
30-2. Szükség van a FreePascal forráskódjára (kivéve akkor ha valaki már elkészített mindent).
31-3. Szükség van olyan binutils programokra, melyek a gazdarendszeren futtathatók és a célrendszeren futtatható binárist hoznak létre. Ezeket vagy lefordítod forráskódból vagy megszerzed.
32-4. Néha szükség lesz fájlokra a célrendszerből amelyre fordítasz.
53+ 1. Szükség van a FreePascal fordítóra ahhoz a rendszerhez amelyen a fordítást el akarod végezni.
54+ 2. Szükség van a FreePascal forráskódjára (kivéve akkor ha valaki már elkészített mindent).
55+ 3. Szükség van olyan binutils programokra, melyek a gazdarendszeren futtathatók és a célrendszeren futtatható binárist hoznak létre. Ezeket vagy lefordítod forráskódból vagy megszerzed.
56+ 4. Néha szükség lesz fájlokra a célrendszerből amelyre fordítasz.
3357
3458# Linux rendszeren
3559
3660## Linux rendszerre
3761
38-A következő szöveg a linux(x86_64) rendszerről linux(i386) rendszerre történő keresztfordítást írja le. Információk az ARM processzoron futó linux-okra (pl. Zaurus) fordításról a [[Setup Cross Compile For ARM/hu|Keresztfordítás beállítása ARM rendszerhez]] részben találhatók. A különbség annyi, hogy a 64-bites rendszer képes lesz 32-bites programokat fordítani, de ehhez az FPC fordítási folyamata miatt jó néhány dolgot el kell még végezni.
39-
40-- Először ellenőrizni kell hogy rendelkezel-e az i386-linux-ld és i386-linux-as fájlokkal:
41-
42-` bash $ which i386-linux-ld`
43-
44-` bash $ which i386-linux-as`
45-
46-Ha megvannak ezek a fájlok akkor "Az FPC fordítása" címsorral folytasd.
62+A következő szöveg a linux(x86_64) rendszerről linux(i386) rendszerre történő keresztfordítást írja le. Információk az ARM processzoron futó linux-okra (pl. Zaurus) fordításról a [[Setup Cross Compile For ARM/hu|Keresztfordítás beállítása ARM rendszerhez]] részben találhatók. A különbség annyi, hogy a 64-bites rendszer képes lesz 32-bites programokat fordítani, de ehhez az FPC fordítási folyamata miatt jó néhány dolgot el kell még végezni.
4763
48-Nekem nem voltak meg, ezért írtam néhány szkriptet:
64+ * Először ellenőrizni kell hogy rendelkezel-e az i386-linux-ld és i386-linux-as fájlokkal:
4965
50-`#!/bin/bash`\
51-`# ez a fájl legyen a /usr/bin/i386-linux-ld`\
52-`ld -A elf32-i386 $@`
66+```
67+bash $ which i386-linux-ld
68+```
69+```
70+bash $ which i386-linux-as
71+```
5372
54-`#!/bin/bash`\
55-`# ez a fájl legyen a /usr/bin/i386-linux-as`\
56-`as --32 $@`
73+Ha megvannak ezek a fájlok akkor "Az FPC fordítása" címsorral folytasd.
5774
58-- Futtathatóvá kell őket tenni:
75+Nekem nem voltak meg, ezért írtam néhány szkriptet:
76+```
77+#!/bin/bash
78+ # ez a fájl legyen a /usr/bin/i386-linux-ld
79+ ld -A elf32-i386 $@
80+```
81+```
82+#!/bin/bash
83+ # ez a fájl legyen a /usr/bin/i386-linux-as
84+ as --32 $@
85+```
5986
60-`bash $ chmod +x /usr/bin/i386-linux-as`\
61-`bash $ chmod +x /usr/bin/i386-linux-ld`
87+ * Futtathatóvá kell őket tenni:
6288
63-- Az FPC fordítása:
89+```
90+bash $ chmod +x /usr/bin/i386-linux-as
91+ bash $ chmod +x /usr/bin/i386-linux-ld
92+```
6493
65-`bash $ make all CPU_TARGET=i386`
94+ * Az FPC fordítása:
6695
67-ez után:
96+```
97+bash $ make all CPU_TARGET=i386
98+```
6899
69-`bash $ su -c "make install CPU_TARGET=i386"`
100+ez után:
101+```
102+bash $ su -c "make install CPU_TARGET=i386"
103+```
70104
71-Ennyi. Szerkeszd az /etc/fpc.cfg fájlt az igényeid szerint.
105+Ennyi. Szerkeszd az /etc/fpc.cfg fájlt az igényeid szerint.
72106
73107## Windows rendszerre
74108
75-A Lazarus-szal történő keresztfordításról információkat a [[Cross compiling for Win32 under Linux/hu|Keresztfordítás Windows-ra Linux rendszeren]] című részben találsz.
76-
77-Ha a 2.1.1 vagy újabb változatú FPC-t hazsnálsz akkor csak kettő parancsot kell futtatni:
78-
79-`bash $ make all OS_TARGET=win32 CPU_TARGET=i386`\
80-`bash $ su -c "make crossinstall OS_TARGET=win32 CPU_TARGET=i386"`
109+A Lazarus-szal történő keresztfordításról információkat a [[Cross compiling for Win32 under Linux/hu|Keresztfordítás Windows-ra Linux rendszeren]] című részben találsz.
81110
82-Figyelem: a win64 rendszerre fordításhoz az első parancs:
111+Ha a 2.1.1 vagy újabb változatú FPC-t hazsnálsz akkor csak kettő parancsot kell futtatni:
112+```
113+bash $ make all OS_TARGET=win32 CPU_TARGET=i386
114+ bash $ su -c "make crossinstall OS_TARGET=win32 CPU_TARGET=i386"
115+```
83116
84-`bash $ make all OS_TARGET=win64 CPU_TARGET=x86_64`
117+Figyelem: a win64 rendszerre fordításhoz az első parancs:
118+```
119+bash $ make all OS_TARGET=win64 CPU_TARGET=x86_64
120+```
85121
86-Az egyszerűség oka, hogy a linker be van építve az FPC ezen változatába.
122+Az egyszerűség oka, hogy a linker be van építve az FPC ezen változatába.
87123
88124## Darwin vagy macOS rendszerre
89125
90-- Először szükséged van a binutils programokra amelyek bináris kódot tudnak készíteni a rendszerhez amelyre fordítani akarsz. Töltsd le az odcctools csomagot (használd a cvs változatot) és kövesd a telepítési utasításokat: <http://www.opendarwin.org/projects/odcctools/> (tükör: <http://www.opendarwin.info/opendarwin.org/en/projects/odcctools/>)
91-- Létre kell hoznod egy (hamis) gyökérkönyvtárat \$HOME/darwinroot néven. Másold át a következő könyvtárakat az Apple vagy Darwin rendszerről a \$HOME/darwinroot könyvtárba: /System /Frameworks /usr (továbbiakat is átmásolhatsz).
92-- A \$HOME/darwinroot könyvtárban hozz létre egy alkönyvtárat cross néven. A könyvtárban ahová az odcctools programokat telepítetted hivatkozásokat kell készítened, az FPC-vel való jobb együttműködésért. Van néhány program a odcctools csomagban powerpc-apple-darwin-* néven amelyekhez linkeket kell készítened (vagy átnevezned őket) a következőképpen: powerpc-apple-darwin-ld legyen powerpc-darwin-ld, ugyanígy a *-ar és *-as esetében is.
93-- most készen állsz az FPC keresztfordítására. Természetesen szükséged van az FPC forráskódjára és a terminálnak nyitva kell lennie ott.
94-
95-írd be:
96-
97-`$PATH=$PATH:$HOME/darwinroot/cross (vagy ahol a szimbolikus linkektalálhatók)`
98-
99-írd be (iirc):
100-
101-`make all TARGET_OS=darwin TARGET_CPU=powerpc OPT="-Xd -Fl/$HOME/darwinroot/usr/lib"`
126+ * Először szükséged van a binutils programokra amelyek bináris kódot tudnak készíteni a rendszerhez amelyre fordítani akarsz. Töltsd le az odcctools csomagot (használd a cvs változatot) és kövesd a telepítési utasításokat: <http://www.opendarwin.org/projects/odcctools/> (tükör: <http://www.opendarwin.info/opendarwin.org/en/projects/odcctools/>)
127+ * Létre kell hoznod egy (hamis) gyökérkönyvtárat $HOME/darwinroot néven. Másold át a következő könyvtárakat az Apple vagy Darwin rendszerről a $HOME/darwinroot könyvtárba: /System /Frameworks /usr (továbbiakat is átmásolhatsz).
128+ * A $HOME/darwinroot könyvtárban hozz létre egy alkönyvtárat cross néven. A könyvtárban ahová az odcctools programokat telepítetted hivatkozásokat kell készítened, az FPC-vel való jobb együttműködésért. Van néhány program a odcctools csomagban powerpc-apple-darwin-* néven amelyekhez linkeket kell készítened (vagy átnevezned őket) a következőképpen: powerpc-apple-darwin-ld legyen powerpc-darwin-ld, ugyanígy a *-ar és *-as esetében is.
129+ * most készen állsz az FPC keresztfordítására. Természetesen szükséged van az FPC forráskódjára és a terminálnak nyitva kell lennie ott.
102130
103-ha ez sikerült, telepítheted ahová akarod a következővel:
131+írd be:
132+```
133+$PATH=$PATH:$HOME/darwinroot/cross (vagy ahol a szimbolikus linkektalálhatók)
134+```
104135
105-`make install TARGET_OS=darwin TARGET_CPU=powerpc PREFIX=/cross/fpc`
136+írd be (iirc):
137+```
138+make all TARGET_OS=darwin TARGET_CPU=powerpc OPT="-Xd -Fl/$HOME/darwinroot/usr/lib"
139+```
106140
107-most másold a ./compiler/ppccross fájlt valahová ahol biztosan megtalálod majd, ez a fordító amire szükséged lesz powerpc programok fordításához.
141+ha ez sikerült, telepítheted ahová akarod a következővel:
142+```
143+make install TARGET_OS=darwin TARGET_CPU=powerpc PREFIX=/cross/fpc
144+```
108145
109-- szerkeszd az /etc/fpc.cfg fájlt.
146+most másold a ./compiler/ppccross fájlt valahová ahol biztosan megtalálod majd, ez a fordító amire szükséged lesz powerpc programok fordításához.
110147
111-írj bele egy ehhez hasonló részt:
148+ * szerkeszd az /etc/fpc.cfg fájlt.
112149
113-`#IFDEF powerpc`\
114-`-Fu/cross/fpc/lib/fpc/$fpcversion/units/$fpctarget/`\
115-`-Fu/cross/fpc/lib/fpc/$fpcversion/units/$fpctarget/rtl`\
116-`-Fu/cross/fpc/lib/fpc/$fpcversion/units/$fpctarget/*`\
117-`-k-systemroot $HOME/darwin/cross`\
118-`#ENDIF`
150+írj bele egy ehhez hasonló részt:
151+```
152+#IFDEF powerpc
153+ -Fu/cross/fpc/lib/fpc/$fpcversion/units/$fpctarget/
154+ -Fu/cross/fpc/lib/fpc/$fpcversion/units/$fpctarget/rtl
155+ -Fu/cross/fpc/lib/fpc/$fpcversion/units/$fpctarget/*
156+ -k-systemroot $HOME/darwin/cross
157+ #ENDIF
158+```
119159
120-amikor keresztfordítani akarsz a ppccross-nak és a linkeknek (symlinks) melyek a powerpc-darwin-* fájlokra mutatnak a PATH-ban felsorolt helyek egyikében kell lenniük ezután már egy egyszerű parancssal (ppccross someprogie.pas) létrehozható a darwin bináris fájl.
160+amikor keresztfordítani akarsz a ppccross-nak és a linkeknek (symlinks) melyek a powerpc-darwin-* fájlokra mutatnak a PATH-ban felsorolt helyek egyikében kell lenniük ezután már egy egyszerű parancssal (ppccross someprogie.pas) létrehozható a darwin bináris fájl.
121161
122-Lehet, hogy rosszul írtam le valamit (vagy mindent) mert már régen csináltam ilyet.
162+Lehet, hogy rosszul írtam le valamit (vagy mindent) mert már régen csináltam ilyet.
123163
124164# Windows rendszeren
125165
126166## Linux rendszerre
127167
128-Információkat a [[buildfaq/hu|buildfaq]] részben találsz erről.
168+Információkat a [[buildfaq/hu|buildfaq]] részben találsz erről.
129169
130170## GO32v2 rendszerre
131171
132-A részletes információk megtalálhatók a [[Cross-compilation from Win32 to GO32v2/hu|Keresztfordítás Windows rendszeren GO32v2-re]] című részben.
172+A részletes információk megtalálhatók a [[Cross-compilation from Win32 to GO32v2/hu|Keresztfordítás Windows rendszeren GO32v2-re]] című részben.
133173
134174# Darwin (macOS) i386 rendszeren
135175
136176## i386-ról powerpc-re
137177
138-- binutils programok
139-
140-Először ellenőrizni kell, hogy megvannak-e a powerpc-darwin-ld és a powerpc-darwin-as fájlok:
141-
142-` $ which powerpc-darwin-ld`\
143-` $ which powerpc-darwin-as`
144-
145-Ha megvannak, hagyd ki a szimbolikus linkek (symlinks) létrehozását és folytasd "Az FPC fordítása" címsortól.
178+ * binutils programok
146179
147-Jelenleg a "normál" binutils programok használhatók, mivel ezek univerzálisak. Ezért egyszerű szimbolikus linkek (symlinks) elegendők:
180+Először ellenőrizni kell, hogy megvannak-e a powerpc-darwin-ld és a powerpc-darwin-as fájlok:
181+```
182+$ which powerpc-darwin-ld
183+ $ which powerpc-darwin-as
184+```
148185
149-` $ sudo ln -s /usr/bin/as /usr/bin/powerpc-darwin-as`\
150-` $ sudo ln -s /usr/bin/ld /usr/bin/powerpc-darwin-ld`
186+Ha megvannak, hagyd ki a szimbolikus linkek (symlinks) létrehozását és folytasd "Az FPC fordítása" címsortól.
151187
152-A szimbolikus linkek bármelyik könyvtárban lehetnek, amíg a hely a \$PATH-ban fel van sorolva.
188+Jelenleg a "normál" binutils programok használhatók, mivel ezek univerzálisak. Ezért egyszerű szimbolikus linkek (symlinks) elegendők:
189+```
190+$ sudo ln -s /usr/bin/as /usr/bin/powerpc-darwin-as
191+ $ sudo ln -s /usr/bin/ld /usr/bin/powerpc-darwin-ld
192+```
153193
154-- Az FPC fordítása:
194+A szimbolikus linkek bármelyik könyvtárban lehetnek, amíg a hely a $PATH-ban fel van sorolva.
155195
156-` $ cd fpc/compiler`\
157-` $ make cycle CPU_TARGET=powerpc`
196+ * Az FPC fordítása:
158197
159-Ez létrehozza a powerpc fordítót (fpc/compiler/ppcppc) és az RTL unit-okat.
198+```
199+$ cd fpc/compiler
200+ $ make cycle CPU_TARGET=powerpc
201+```
160202
161-Az így létrehozott powerpc binárisok nem igényelnek egyéb keresztfordító eszközt. A powerpc fpc és a ppcppc tökéletesen fut Rosetta-t használó IntelMacs rendszeren.
203+Ez létrehozza a powerpc fordítót (fpc/compiler/ppcppc) és az RTL unit-okat.
162204
163-További tesztek és dokumentációk szükségesek párhuzamos telepítésről és használatról.
205+Az így létrehozott powerpc binárisok nem igényelnek egyéb keresztfordító eszközt. A powerpc fpc és a ppcppc tökéletesen fut Rosetta-t használó IntelMacs rendszeren.
164206
165-Ha hiányoznak unit-ok, nézd át a konfigurációs fájlt (\$HOME/.fpc.cfg vagy /etc/fpc.cfg vagy /sw/etc/fpc.cfg) Lehet hogy hozzá kell adnot valami ehhez hasonlót (természetesen azokkal a könyvtárnevekkel ahol a te unit-jaid vannak).
207+További tesztek és dokumentációk szükségesek párhuzamos telepítésről és használatról.
166208
167-`-Fu/usr/local/lib/fpc/lib/fpc/$fpcversion/units/$fpctarget/`\
168-`-Fu/usr/local/lib/fpc/lib/fpc/$fpcversion/units/$fpctarget/rtl`\
169-`-Fu/usr/local/lib/fpc/lib/fpc/$fpcversion/units/$fpctarget/*`
209+Ha hiányoznak unit-ok, nézd át a konfigurációs fájlt ($HOME/.fpc.cfg vagy /etc/fpc.cfg vagy /sw/etc/fpc.cfg) Lehet hogy hozzá kell adnot valami ehhez hasonlót (természetesen azokkal a könyvtárnevekkel ahol a te unit-jaid vannak).
210+```
211+-Fu/usr/local/lib/fpc/lib/fpc/$fpcversion/units/$fpctarget/
212+ -Fu/usr/local/lib/fpc/lib/fpc/$fpcversion/units/$fpctarget/rtl
213+ -Fu/usr/local/lib/fpc/lib/fpc/$fpcversion/units/$fpctarget/*
214+```
170215
171-Megjegyzés: Az univerzális binárisok a különálló (i386 and powerpc) binárisokból készültek lipo használatával.
216+Megjegyzés: Az univerzális binárisok a különálló (i386 and powerpc) binárisokból készültek lipo használatával.
172217
173218## Windows és Linux rendszerre (32 bit)
174219
175-A [fink](http://finkproject.org/) csomagkezelő rendelkezik a keresztfordító csomagokkal Windows és Linux célrendszerekhez (32 bit) IntelMacs-on.
176-
177-`$ fink install fpc-win32`
178-
179-és
180-
181-`$ fink install fpc-i386-linux`
182-
183-parancsokkal telepíthetők a keresztfordítók.
220+A [fink](<http://finkproject.org/>) csomagkezelő rendelkezik a keresztfordító csomagokkal Windows és Linux célrendszerekhez (32 bit) IntelMacs-on.
221+```
222+$ fink install fpc-win32
223+```
184224
185-A fordításhoz használd ezeket a parancsokat:
225+és
226+```
227+$ fink install fpc-i386-linux
228+```
186229
187-` fpc -Tlinux FILENAME`\
188-` fpc -Twin32 FILENAME`
230+parancsokkal telepíthetők a keresztfordítók.
189231
190-Currently (fpc 3.0.4), it gives:
232+A fordításhoz használd ezeket a parancsokat:
233+```
234+fpc -Tlinux FILENAME
235+ fpc -Twin32 FILENAME
236+```
191237
192-``` bash
238+Currently (fpc 3.0.4), it gives:
239+```
193240fpc-cross-arm-gba
194-fpc-cross-arm-linux
195-fpc-cross-arm-nds
196-fpc-cross-arm-wince
197-fpc-cross-arm-armv4t-embedded
198-fpc-cross-arm-armv7m-embedded
199-fpc-cross-i386-darwin
200-fpc-cross-i386-freebsd
201-fpc-cross-i386-go32v2
202-fpc-cross-i386-linux
203-fpc-cross-i386-nativent
204-fpc-cross-i386-netbsd
205-fpc-cross-i386-solaris
206-fpc-cross-i386-win32
207-fpc-cross-i386-wince
208-fpc-cross-jvm-android
209-fpc-cross-jvm-java
210-fpc-cross-m68k-linux
211-fpc-cross-mipsel-linux
212-fpc-cross-powerpc-linux
213-fpc-cross-sparc-linux
214-fpc-cross-x86-64-dragonfly
215-fpc-cross-x86-64-freebsd
216-fpc-cross-x86-64-linux
217-fpc-cross-x86-64-win64
241+ fpc-cross-arm-linux
242+ fpc-cross-arm-nds
243+ fpc-cross-arm-wince
244+ fpc-cross-arm-armv4t-embedded
245+ fpc-cross-arm-armv7m-embedded
246+ fpc-cross-i386-darwin
247+ fpc-cross-i386-freebsd
248+ fpc-cross-i386-go32v2
249+ fpc-cross-i386-linux
250+ fpc-cross-i386-nativent
251+ fpc-cross-i386-netbsd
252+ fpc-cross-i386-solaris
253+ fpc-cross-i386-win32
254+ fpc-cross-i386-wince
255+ fpc-cross-jvm-android
256+ fpc-cross-jvm-java
257+ fpc-cross-m68k-linux
258+ fpc-cross-mipsel-linux
259+ fpc-cross-powerpc-linux
260+ fpc-cross-sparc-linux
261+ fpc-cross-x86-64-dragonfly
262+ fpc-cross-x86-64-freebsd
263+ fpc-cross-x86-64-linux
264+ fpc-cross-x86-64-win64
218265```
219266
220-For other platforms (processors and systems) you have to do the setup by yourself. It is basically the same scheme: First, you need the corresponding binutils (See [[Binutils]]) and second, the crosscompiler and the run time library. Some more details of the building procedure can be learned from the fink package description files of the crosscompilers from above.
267+For other platforms (processors and systems) you have to do the setup by yourself. It is basically the same scheme: First, you need the corresponding binutils (See [[Binutils]]) and second, the crosscompiler and the run time library. Some more details of the building procedure can be learned from the fink package description files of the crosscompilers from above.
221268
222269# Keresztfordítás GYIK (faq)
223270
224271## Mire jó a keresztfordítás?
225272
226-Így fejleszthetsz programokat egy OS/CPU-n és lefordíthatod egy másik OS/CPU-ra a számítógép újraindítása vagy másik számítógép használata nélkül.
273+Így fejleszthetsz programokat egy OS/CPU-n és lefordíthatod egy másik OS/CPU-ra a számítógép újraindítása vagy másik számítógép használata nélkül.
227274
228275## Miért Unix-ról Windws-ra és nem a másik irányba?
229276
230-A legfőbb ok az, hogy Unix binárisok létrehozása más rendszereken (másik Unix vagy akár Linux is) jóval bonyolultabb.
277+A legfőbb ok az, hogy Unix binárisok létrehozása más rendszereken (másik Unix vagy akár Linux is) jóval bonyolultabb.
231278
232-Az alapvető problémák:
279+Az alapvető problémák:
233280
234-1. Szükséged van függvénytárakra (library-ik) a gazdarendszeren (amelyen a keresztfordítást el akarod végezni)
235-2. Nincs ilyen egységes gyűjtemény függvénytárakból (library) a nagyon összetett és dinamikus Unix verziókezelés eredményeként.
236-3. Rengeteg (linker) paraméterezés és finomhangolás elvégzésére van szükség, amiket a legtöbb esetben nagyon nehéz elmagyarázni.
281+ 1. Szükséged van függvénytárakra (library-ik) a gazdarendszeren (amelyen a keresztfordítást el akarod végezni)
282+ 2. Nincs ilyen egységes gyűjtemény függvénytárakból (library) a nagyon összetett és dinamikus Unix verziókezelés eredményeként.
283+ 3. Rengeteg (linker) paraméterezés és finomhangolás elvégzésére van szükség, amiket a legtöbb esetben nagyon nehéz elmagyarázni.
237284
238-Ha a figyelmeztetések ellenére mégis kitartasz, olvasd el a crossnotes című feljegyzést, amely fentebb van megemlítve vagy a [[buildfaq/hu|buildfaq]] fejezetet.
285+Ha a figyelmeztetések ellenére mégis kitartasz, olvasd el a crossnotes című feljegyzést, amely fentebb van megemlítve vagy a [[buildfaq/hu|buildfaq]] fejezetet.
239286
240287## Több információt szeretnék a Free Pascal építéséről. Hol találok?
241288
242289Olvasd el a [[buildfaq/hu|buildfaq]] fejezetet.
243290
244291---
245-*From the Free Pascal wiki, page "Cross compiling/hu", as it stood on 2020-05-23 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
292+*From the Free Pascal wiki, page "Cross compiling/hu", as the Internet Archive kept it on 2023-03-24. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history