Cross-Compile perl-ARM

Ich bin versucht zu cross-kompilieren des perl-interpreter für ein ARM-Architektur (FriendlyARM Micro2440). Ich bin mit dem ARM-Linux-GCC-4.4.3 cross-compiler vom Hersteller zur Verfügung gestellt. Das board ist mit Linux 2.6.

War ich in der Lage, um cross-kompilieren eines einfachen "Hello World" - Anwendung erfolgreich, und es lief auf dem Zielcomputer.

Ich heruntergeladen habe die perl v5.12.3 Quelle. Ich war in der Lage zu tun, eine normale Kompilierung von perl für Ubuntu. Ich bin jetzt versucht, um eine cross-Kompilierung für ARM-board. Ich arbeite aus dem perl-5.12.3 - /Kreuz-Ordner in den source-download.

make patch gelungen, aber wenn ich make perl schlägt er mit dieser

LD_LIBRARY_PATH=/home/reed022/.local/share/Trash/files/perl-5.2.12.3 arm-linux-gcc  -o miniperl \
        gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o   \
        miniperlmain.o opmini.o perlmini.o -lnsl -ldl -lm -lcrypt -lutil -lc 
LD_LIBRARY_PATH=/home/reed022/.local/share/Trash/files/perl-5.2.12.3  ./miniperl -w -Ilib -MExporter -e '<?>' || make minitest
./miniperl: 1: Syntax error: word unexpected (expecting ")")

Ich denke, der relevante Teil der Ausgabe ist das ./miniperl -w -Ilib -MExporter -e '<?>' || make minitest Teil. Obwohl ich nicht sicher bin. Es scheint verwirrend für mich, dass die cross-compilation-Umgebung würde versuchen, führen Sie tests, da es für eine andere system als das, es ist gebaut auf.

Ich bin völlig verloren, wohin Sie gehen von hier aus. Die Leute, die ich gesprochen habe hatte noch nicht viel Erfahrung mit cross-kompilieren von Programmen.

UPDATE

Ich beschloss, löschen Sie die perl-source-Ordner und re-extrahieren Sie es, denken, dass die Vorherige Kompilierung von perl für die Ubuntu-host-Maschine gewesen sein könnte, messing mit der aktuellen cross-compilation. Ich bin jetzt immer eine andere, aber ähnliche Fehler.

`sh  cflags "optimize='-O2'" generate_uudmap.o` -fexpensive-optimizations -fomit-frame-pointer -O2 -march=armv4 -mtune=strongarm1100 generate_uudmap.c
      CCCMD =  arm-linux-gcc -DPERL_CORE -c  -fexpensive-optimizations -fomit-frame-pointer -O2 -march=armv4 -mtune=strongarm1100  -O2 -Wall 
arm-linux-gcc -o generate_uudmap  generate_uudmap.o -lnsl -ldl -lm -lcrypt -lutil -lc 
./generate_uudmap uudmap.h bitcount.h
./generate_uudmap: 1: Syntax error: word unexpected (expecting ")")
make[1]: *** [bitcount.h] Error 2
make[1]: Leaving directory `/home/reed022/Downloads/perl-5.12.3'
make[1]: Entering directory `/home/reed022/Downloads/perl-5.12.3'
make[1]: *** No rule to make target `more'.  Stop.
make[1]: Leaving directory `/home/reed022/Downloads/perl-5.12.3'
make: *** [perl] Error 2
  • Nie Tat dies erfolgreich, aber möchten Sie vielleicht zu prüfen, das OpenEmbedded-Projekt. Bieten Sie ein build framework für die Erstellung von embedded-Linux-Distributionen. wiki.openembedded.net/index.php/Main_Page
  • Das makefile ist ganz klar versuchen, zu laufen Ihre ARM-binaries auf Ihrem (Intel?) build-Maschine. (Ich vermute, dass die Magische Zahl entsprechen keiner der bekannten ausführbare Datei geben, so die shell versucht, führen Sie es als shell-Skript und gibt die seltsame Fehlermeldung, die Sie sehen). Es muss etwas falsch mit Ihrem cross-Kompilierungs-setup.
InformationsquelleAutor treed | 2011-03-28
Schreibe einen Kommentar