Sign in Join
Wiki copytemporary

Cross compiling/hu: what changed

Revision 2 to 3. 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-
251# Előszó
262
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á.
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á.
284
295## Gazda- és célrendszer ugyanolyan CPU-n
306
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.
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.
328
339## Gazda és célrendszer eltérő CPU-n
3410
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.
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.
3612
3713## Assembler és linker
3814
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.
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.
4016
4117## Unit-ok a célrendszerhez
4218
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).
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).
4420
4521## Konfiguráció
4622
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.).
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.).
4824
4925## Alap műveletek
5026
51-Van néhány általános művelet a keresztfordításban amit minden esetben el kell végezned:
27+Van néhány általános művelet a keresztfordításban amit minden esetben el kell végezned:
5228
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.
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.
5733
5834# Linux rendszeren
5935
6036## Linux rendszerre
6137
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.
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.
6339
64- * Először ellenőrizni kell hogy rendelkezel-e az i386-linux-ld és i386-linux-as fájlokkal:
40+- Először ellenőrizni kell hogy rendelkezel-e az i386-linux-ld és i386-linux-as fájlokkal:
6541
66-```
67-bash $ which i386-linux-ld
68-```
69-```
70-bash $ which i386-linux-as
71-```
42+` bash $ which i386-linux-ld`
7243
73-Ha megvannak ezek a fájlok akkor "Az FPC fordítása" címsorral folytasd.
44+` bash $ which i386-linux-as`
7445
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-```
46+Ha megvannak ezek a fájlok akkor "Az FPC fordítása" címsorral folytasd.
8647
87- * Futtathatóvá kell őket tenni:
48+Nekem nem voltak meg, ezért írtam néhány szkriptet:
8849
89-```
90-bash $ chmod +x /usr/bin/i386-linux-as
91- bash $ chmod +x /usr/bin/i386-linux-ld
92-```
50+`#!/bin/bash`\
51+`# ez a fájl legyen a /usr/bin/i386-linux-ld`\
52+`ld -A elf32-i386 $@`
9353
94- * Az FPC fordítása:
54+`#!/bin/bash`\
55+`# ez a fájl legyen a /usr/bin/i386-linux-as`\
56+`as --32 $@`
9557
96-```
97-bash $ make all CPU_TARGET=i386
98-```
58+- Futtathatóvá kell őket tenni:
9959
100-ez után:
101-```
102-bash $ su -c "make install CPU_TARGET=i386"
103-```
60+`bash $ chmod +x /usr/bin/i386-linux-as`\
61+`bash $ chmod +x /usr/bin/i386-linux-ld`
10462
105-Ennyi. Szerkeszd az /etc/fpc.cfg fájlt az igényeid szerint.
63+- Az FPC fordítása:
10664
65+`bash $ make all CPU_TARGET=i386`
66+
67+ez után:
68+
69+`bash $ su -c "make install CPU_TARGET=i386"`
70+
71+Ennyi. Szerkeszd az /etc/fpc.cfg fájlt az igényeid szerint.
72+
10773## Windows rendszerre
10874
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.
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.
11076
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-```
77+Ha a 2.1.1 vagy újabb változatú FPC-t hazsnálsz akkor csak kettő parancsot kell futtatni:
11678
117-Figyelem: a win64 rendszerre fordításhoz az első parancs:
118-```
119-bash $ make all OS_TARGET=win64 CPU_TARGET=x86_64
120-```
79+`bash $ make all OS_TARGET=win32 CPU_TARGET=i386`\
80+`bash $ su -c "make crossinstall OS_TARGET=win32 CPU_TARGET=i386"`
12181
122-Az egyszerűség oka, hogy a linker be van építve az FPC ezen változatába.
82+Figyelem: a win64 rendszerre fordításhoz az első parancs:
12383
84+`bash $ make all OS_TARGET=win64 CPU_TARGET=x86_64`
85+
86+Az egyszerűség oka, hogy a linker be van építve az FPC ezen változatába.
87+
12488## Darwin vagy macOS rendszerre
12589
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.
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.
13094
131-írd be:
132-```
133-$PATH=$PATH:$HOME/darwinroot/cross (vagy ahol a szimbolikus linkektalálhatók)
134-```
95+írd be:
13596
136-írd be (iirc):
137-```
138-make all TARGET_OS=darwin TARGET_CPU=powerpc OPT="-Xd -Fl/$HOME/darwinroot/usr/lib"
139-```
97+`$PATH=$PATH:$HOME/darwinroot/cross (vagy ahol a szimbolikus linkektalálhatók)`
14098
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-```
99+írd be (iirc):
145100
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.
101+`make all TARGET_OS=darwin TARGET_CPU=powerpc OPT="-Xd -Fl/$HOME/darwinroot/usr/lib"`
147102
148- * szerkeszd az /etc/fpc.cfg fájlt.
103+ha ez sikerült, telepítheted ahová akarod a következővel:
149104
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-```
105+`make install TARGET_OS=darwin TARGET_CPU=powerpc PREFIX=/cross/fpc`
159106
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.
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.
161108
162-Lehet, hogy rosszul írtam le valamit (vagy mindent) mert már régen csináltam ilyet.
109+- szerkeszd az /etc/fpc.cfg fájlt.
163110
111+írj bele egy ehhez hasonló részt:
112+
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`
119+
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.
121+
122+Lehet, hogy rosszul írtam le valamit (vagy mindent) mert már régen csináltam ilyet.
123+
164124# Windows rendszeren
165125
166126## Linux rendszerre
167127
168-Információkat a [[buildfaq/hu|buildfaq]] részben találsz erről.
128+Információkat a [[buildfaq/hu|buildfaq]] részben találsz erről.
169129
170130## GO32v2 rendszerre
171131
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.
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.
173133
174134# Darwin (macOS) i386 rendszeren
175135
176136## i386-ról powerpc-re
177137
178- * binutils programok
138+- binutils programok
179139
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-```
140+Először ellenőrizni kell, hogy megvannak-e a powerpc-darwin-ld és a powerpc-darwin-as fájlok:
185141
186-Ha megvannak, hagyd ki a szimbolikus linkek (symlinks) létrehozását és folytasd "Az FPC fordítása" címsortól.
142+` $ which powerpc-darwin-ld`\
143+` $ which powerpc-darwin-as`
187144
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-```
145+Ha megvannak, hagyd ki a szimbolikus linkek (symlinks) létrehozását és folytasd "Az FPC fordítása" címsortól.
193146
194-A szimbolikus linkek bármelyik könyvtárban lehetnek, amíg a hely a $PATH-ban fel van sorolva.
147+Jelenleg a "normál" binutils programok használhatók, mivel ezek univerzálisak. Ezért egyszerű szimbolikus linkek (symlinks) elegendők:
195148
196- * Az FPC fordítása:
149+` $ sudo ln -s /usr/bin/as /usr/bin/powerpc-darwin-as`\
150+` $ sudo ln -s /usr/bin/ld /usr/bin/powerpc-darwin-ld`
197151
198-```
199-$ cd fpc/compiler
200- $ make cycle CPU_TARGET=powerpc
201-```
152+A szimbolikus linkek bármelyik könyvtárban lehetnek, amíg a hely a \$PATH-ban fel van sorolva.
202153
203-Ez létrehozza a powerpc fordítót (fpc/compiler/ppcppc) és az RTL unit-okat.
154+- Az FPC fordítása:
204155
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.
156+` $ cd fpc/compiler`\
157+` $ make cycle CPU_TARGET=powerpc`
206158
207-További tesztek és dokumentációk szükségesek párhuzamos telepítésről és használatról.
159+Ez létrehozza a powerpc fordítót (fpc/compiler/ppcppc) és az RTL unit-okat.
208160
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-```
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.
215162
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.
163+További tesztek és dokumentációk szükségesek párhuzamos telepítésről és használatról.
217164
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).
166+
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/*`
170+
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.
172+
218173## Windows és Linux rendszerre (32 bit)
219174
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-```
175+A [fink](http://finkproject.org/) csomagkezelő rendelkezik a keresztfordító csomagokkal Windows és Linux célrendszerekhez (32 bit) IntelMacs-on.
224176
225-és
226-```
227-$ fink install fpc-i386-linux
228-```
177+`$ fink install fpc-win32`
229178
230-parancsokkal telepíthetők a keresztfordítók.
179+és
231180
232-A fordításhoz használd ezeket a parancsokat:
233-```
234-fpc -Tlinux FILENAME
235- fpc -Twin32 FILENAME
236-```
181+`$ fink install fpc-i386-linux`
237182
238-Currently (fpc 3.0.4), it gives:
239-```
183+parancsokkal telepíthetők a keresztfordítók.
184+
185+A fordításhoz használd ezeket a parancsokat:
186+
187+` fpc -Tlinux FILENAME`\
188+` fpc -Twin32 FILENAME`
189+
190+Currently (fpc 3.0.4), it gives:
191+
192+``` bash
240193fpc-cross-arm-gba
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
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
265218```
266219
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.
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.
268221
269222# Keresztfordítás GYIK (faq)
270223
271224## Mire jó a keresztfordítás?
272225
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.
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.
274227
275228## Miért Unix-ról Windws-ra és nem a másik irányba?
276229
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.
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.
278231
279-Az alapvető problémák:
232+Az alapvető problémák:
280233
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.
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.
284237
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.
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.
286239
287240## Több információt szeretnék a Free Pascal építéséről. Hol találok?
288241
289242Olvasd el a [[buildfaq/hu|buildfaq]] fejezetet.
290243
291244---
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).*
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).*

Back to history