FPC-Native auf Android-Gerät. Kein Crosscompile!

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Soner
Beiträge: 624
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

FPC-Native auf Android-Gerät. Kein Crosscompile!

Beitrag von Soner »

Hallo Leute,
ich habe Heute versucht auf mein Android Handy fpc zu installieren und damit Kommandozeilenprogramme zu erstellen. Es lief alles gut nur fertiges Programm hatte Fehler. Also kein Logik oder FPC-Fehler sondern wahrscheinlich Linkerfehler (as+ld). Android Konsole meldete das in Binardatei (Programm) Syntax fehler ist. Da Freepascal kein Assembler und Linker mitliefert mußte ich von Internet herunterladen. Was ich gefunden hatte war irgendetwas mit "arm-linux-androideabi" gekennzeichnet. Wahrscheinlich kann mein Gerät kein EABI-Binaries ausführen. Dann wollte ich mit Emulator ausprobieren nach ein paar Stunden mußte das Aufgeben weil mein Laptop das nicht mehr mitmacht. Es zu langsam und zu schwach dauert ewig bis man ein Android programm ausführt.
Nun mein Frage an euch kann jemand, dass sich dafür interessiert ausprobieren?

Wenn ihr testen wollt macht es folgend:
1. Ihr braucht ein Androidsystem (Gerät oder Emulator) mit dem ihr auf Rootverzeichnis "/" Schreib- und Ausführrechte habt. Also ein gerootetes Gerät oder Emulator.

2. Ladet FPC von mein Skydrivekonto herunter. Ich habe heute von freepascal.org heruntergeladen und die Dateien in Ordner struktiert. Ich habe nur "base.arm-linux.tr.gz-Dateien" von "fpc-2.6.0.arm-linux.tar" Paket benutzt
Dann habt ihr alles in "/fpc" oder. Braucht nicht in irgendwelche Android-Bin-Ordner zu kopieren. Hier ist Link:
https://skydrive.live.com/?cid=96bfddbfe0bf46f2

3. Dann entpackt ihr es auf eurem Androidgerät in den Rootordner. Es sollte ein "/fpc" Ordner und darin "/fpc/2.6.0" Ordner sein.

4. Dann wechselt ihr mit Androidterminal oder ADB-Shell in den Ordner "\fpc\2.6.0\bin\arm-linux"
und kompiliert das Beispielprogramm:

Code: Alles auswählen

 
$fpc zztest.pas

Es wird zum zztest.bin o.ä. kompiliert. Dann führ ihr es aus z.B. "$./zztest".
Falls ihr beim Erstellen oder Ausführen des Programms "Permission..."-Fehler bekommt, dann habt ihr kein Schreib- oder Ausführrechte. Einfach Rootexplorer ausführen und Schreibrechte zuweisen.
Bei Erfolg bekommt Ihr "Hello ARM" zu sehen.

Noch etwas zu Programmen "as" und "ld" im Paket. Ich habe es von hier:
http://www.top-roms.com/rdnative-gcc-4-6-0-binutils-2-22-bionic-arms-attached/
heruntergeladen.
Dann habe ich aus dem Paket von diesem Ordner "bionic_gcc_binutils.7z\arm-linux-androideabi\bin" benutzt. Ich weiß nicht ob die richtigen sind. Falls ihr euch damit besser auskennt benutzt richtigen.

Falls jemanden das gelingt, also zztest.pas auf Android richtig zu linken und auszuführen würde ich mich auf ein Feedback freuen. Ich muß selber warten bis ich einen besseren Rechner gekauft habe :(

Antworten