Estoy intentando cruzar compilar el intérprete perl para una arquitectura ARM (FriendlyARM Micro2440). Estoy usando el compilador cruzado ARM-Linux GCC 4.4.3 proporcionado por el fabricante. La placa ejecuta Linux 2.6.Cross Compile perl para ARM
Pude compilar de forma cruzada una aplicación básica de "Hello World" y se ejecutó en la máquina de destino.
He descargado la fuente perl v5.12.3. Pude hacer una compilación normal de perl para Ubuntu. Ahora estoy intentando hacer una compilación cruzada para el tablero ARM. Estoy trabajando en la carpeta perl-5.12.3/Cross en la descarga de la fuente.
make patch
tuvieron éxito, pero cuando corro make perl
falla con este
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 ")")
Creo que la parte correspondiente de la salida es la parte ./miniperl -w -Ilib -MExporter -e '<?>' || make minitest
. Aunque no estoy seguro Me parece confuso que el entorno de compilación cruzada intente ejecutar pruebas, ya que está apuntando a un sistema diferente al que está siendo desarrollado.
Estoy completamente perdido como a dónde ir desde aquí. Las personas con las que he hablado no tienen mucha experiencia con los programas de compilación cruzada.
ACTUALIZACIÓN
que decidió suprimir la carpeta de origen Perl y volver a extraerlo, pensando que la compilación previa de Perl para la máquina host Ubuntu podría haber sido jugar con la corriente de compilación cruzada. Ahora recibo un error diferente pero similar.
`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
Nunca lo hizo con éxito, pero es posible que desee comprobar el proyecto OpenEmbedded. Proporcionan un marco de trabajo para crear distros Linux integrados. http://wiki.openembedded.net/index.php/Main_Page – daotoad
El archivo MAKE intenta claramente ejecutar sus binarios ARM en su máquina de creación (Intel?). (Supongo que el número mágico no coincide con ningún tipo de archivo ejecutable conocido, por lo que el intérprete de comandos intenta ejecutarlo como un script de shell y da el extraño error que ves). Debe haber algo mal con su configuración de compilación cruzada. – LHMathies