Crosscompiling

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Crosscompiling

Beitrag von Bauer321 »

Hi,
ich habe ein Programm geschrieben, erstmal nur für windows. Jetzt wurde ich gefragt ob ich das auch für mac machen kann nur habe ich keinen mac. ist es möglich unter windows eine mac anwendung zu compilieren?
und wenn ja wie stelle ich das an? worauf muss ich achten damit das programm als solches dann auch in vollem funktionsumfang auf einem mac läuft?

Sven
www.mcpatcher.net | www.hoeper.me

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Crosscompiling

Beitrag von mschnell »

http://wiki.lazarus.freepascal.org/Cross_compiling" onclick="window.open(this.href);return false;
-Michael

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Crosscompiling

Beitrag von Bauer321 »

Danke aber leider kann ich da nicht so viel mit anfangen.
da steht erstmal das ich binutils brauche der link geht aber nicht und ich weiß leider nicht wo ich diese dann finden kann

außerdem habe ich das mit den ganzen make befehlen bisher nie gemacht sondern einfach die ide genutzt
www.mcpatcher.net | www.hoeper.me

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: Crosscompiling

Beitrag von Scotty »

Normalerweise kann man ein Betriebssystem virtuell ausführen. Apple untersagt allerdings ausdrücklich den Einsatz von MacOS auf Nicht-Apple-PCs, so dass hier ein klares Nein zu antworten ist.

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Crosscompiling

Beitrag von Bauer321 »

Scotty hat geschrieben:Normalerweise kann man ein Betriebssystem virtuell ausführen. Apple untersagt allerdings ausdrücklich den Einsatz von MacOS auf Nicht-Apple-PCs, so dass hier ein klares Nein zu antworten ist.
in deutschland ist das von apple nicht zulässig. bei uns darf man keine geräte gebundene software verkaufen
das gilt auch für windows lizenzen, diese darf man auch von einem auf den anderen pc packen da der teil der eula oder wie das heißt, der das untersagt verboten ist.(Quelle ct letztes jahr irgendwann)

nur geht das bei apple auch nicht so leicht eine solche virtuelle version zum laufen zu bekommen. für linux mach ich mir gerade ne ubuntu vm
www.mcpatcher.net | www.hoeper.me

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Crosscompiling

Beitrag von Maik81ftl »

Bauer321 hat geschrieben:in deutschland ist das von apple nicht zulässig. bei uns darf man keine geräte gebundene software verkaufen
das gilt auch für windows lizenzen, diese darf man auch von einem auf den anderen pc packen da der teil der eula oder wie das heißt, der das untersagt verboten ist.(Quelle ct letztes jahr irgendwann)
Off Tropic wenn ich dich hier grade richtig verstehe, macht sich Jeder PC-Handler damit starfbar, der PC-Gebundene Windowssysteme verkäuft?
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Crosscompiling

Beitrag von Bauer321 »

nein aber die klausel gilt in deutschland nicht. d.h. er kann das zwar sagen aber rechtlich nicht durchsetzten
www.mcpatcher.net | www.hoeper.me

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Crosscompiling

Beitrag von mschnell »

Normalerweise steht darum in allen Verträgen, dass, wenn eine Klausel auf Grund geltender Gesetze nicht wirksam ist, die anderen sinngemäß weiterhin gelten.

-Michael

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Crosscompiling

Beitrag von Bauer321 »

mschnell hat geschrieben:Normalerweise steht darum in allen Verträgen, dass, wenn eine Klausel auf Grund geltender Gesetze nicht wirksam ist, die anderen sinngemäß weiterhin gelten.

-Michael
klar aber die ungültige die gilt halt nicht xD

irgenwie bekomm ich das immer noch nicht hin es hackt schon daran das ich nicht weiß was genau ich brauche und auch nicht wo ich das finde(Version 0.9.31, 2.5.1)
www.mcpatcher.net | www.hoeper.me

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Crosscompiling

Beitrag von Bauer321 »

... keiner der mir da weiterhelfen kann?
www.mcpatcher.net | www.hoeper.me

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Crosscompiling

Beitrag von Bauer321 »

test
edit: in dem umlaute post kann ich nichts schreiben...
www.mcpatcher.net | www.hoeper.me

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Crosscompiling

Beitrag von Socke »

Bauer321 hat geschrieben:... keiner der mir da weiterhelfen kann?
Du brauchst:
  • Einen Compiler (FPC), der deinen Quelltext in Assembler für die richtige Prozessorarchitektur (x86, x86_64 oder PowerPC — ich weiß nicht, worauf Mac OS X läuft) übersetzt.
  • Einen Assembler (as), der den Assembler-Quelltext in Binärdaten übersetzt
  • EInen Linker (ld), der die Binärdaten zu einem von einem Betriebssystem ausführbaren Programm zusammensetzt
  • Alle verwendeten Programm- und Betriebssystembibliotheken, die dein Programm verwendet
Punkt 2 und 3 sind unabhängig von Punkt 1, sind also bei allen Programmiersprachen gleich. Daher kannst du bei google auch allgemein suchen (in unter zwei Minuten: http://www.sandroid.org/imcross/). Da cross compiling unter Linux größere Verbreitung hat als unter Windows (das unterstelle ich jetzt mal aufgrund der GNU Binutils), musst du die Anleitungen gegebenenfalls von Linux für Windows adaptieren.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Crosscompiling

Beitrag von Bauer321 »

unterstützt denn der fpc compiler standartmäßig die verschieden processarchitekturen oder muss ich mir wenn ich jetzt die windows 32 bit version habe noch einen fpc compiler für PowerPC,Intel(Mac) sowie einen weiteren für Linux besorgen?
Wenn ich Punkt 2 und 3 richtig verstehe heißt das ja das ich diese nur einmal brauche.
ja und zum tipp das kann ich nicht weil ich mit linux einfach gar nichts hinbekomme, ich bekomms ja nichtmal hin in ner virtuellen marchine den vmware tools installer zu starten
www.mcpatcher.net | www.hoeper.me

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Crosscompiling

Beitrag von Socke »

Bauer321 hat geschrieben:unterstützt denn der fpc compiler standartmäßig die verschieden processarchitekturen oder muss ich mir wenn ich jetzt die windows 32 bit version habe noch einen fpc compiler für PowerPC,Intel(Mac) sowie einen weiteren für Linux besorgen?
Den Free Pascal Compiler kann man so übersetzen, dass er Programme für eine bestimme Prozessorarchitektur übersetzen kann. Standardmäßig wird die Prozessorarchitektur unterstützt, auf dem er gebaut wurde, alles andere ist damit Cross-Compiling. Er kann immer Programme für alle unterstützten Betriebssysteme erstellen, die für diese Prozessorarchitektur unterstützt werden. Für x86 sind das die unter anderem die Betriebssysteme Win32, WinCE, LInux, OS/2, Darwin (Mac OS X), und so weiter.

Je nach dem, was du bereits hast, brauchst du also einen Cross-Compiler für alle anderen Prozessorarchitekturen, für die du deine Programme übersetzen möchtest, wobei alle dieselbe Version sein sollten (da alles andere problemanfälliger wäre).
Bauer321 hat geschrieben:Wenn ich Punkt 2 und 3 richtig verstehe heißt das ja das ich diese nur einmal brauche.
Du brauchst für jede Betriebssystem-Prozessorarchitektur-Kombinationen einen Linker und einen Assembler (zumindest werden die GNU Binutils immer nach Kombination erstellt, zum Beispiel für x86-linux oder arm-wince).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Antworten