PERL 移植到ARM(mini2440)过程详解
作者:万升级
日期:2011-11-30
使用的环境:
Host: Linux version 2.6.31.5-127.fc12.i686 
安装i386 perl 5.10.0
交叉编译使用 perl-5.10.源码
GCC: gcc version 4.4.2 (交叉编译环境由友善之臂提供的toolchain工具)
相关包下载
源码包:  perl-5.10.
交叉编译包:  perl-5.10.
/src/5.0/perl-5.10.
download2.pudn/downloads183/ebook/85856388perl-5.10.
编译过程
上传包:
把上面下载的两个包上传到编译环境的同一个目录中,如:/home/swan/perl5
如下:
解压包:
tar -zxvf perl-5.10.
解压包后,生成下面的一些文件
-rwxr-xr-x  1 swan epdev      808 2009-07-19 02:11 install
-rwxr--r--  1 swan epdev  175088 2009-07-19 02:05 perl-5.10.0-cross.patch
-rwxr-xr-x  1 swan epdev  9813068 2011-11-30 15:55 perl-5.10.
-rwxr-xr-x  1 swan epdev 15595020 2011-11-30 15:55 perl-5.10.
猛士军车
东风得利卡drwxr-xr-x  4 swan epdev    4096 2009-07-19 01:39 usr
修改安装配置文件install
vi install
修改前:
#!/bin/sh                                                                                                 
#tar -xzvf $PKG/perl-5.10.                                               
#patch -Np0 -i perl-5.10.0-cross.patch                                               
sed -i 's/arm-unknown-linux-gnu-/arm-926ejs-linux-/' \                                               
        perl-5.10.0/Cross/Makefile                                               
sed -i '/^PERL =/c\PERL = ../miniperl-cross' perl-5.10.0/utils/Makefile.SH                   
sed -i -e '/^generate_uudmap/c\generate_uudmap\\\$(EXE_EXT): generate_uudmap.c'      -e '/$(CC).*generate_uudmap/c\    gcc \\\$(LDFLAGS) -o generate_uudmap generate_uudmap.c \\\$(libs)' perl-5.10.0/Makefile.SH                                               
sed -i -e 's/\.\/perl installperl/\.\/miniperl-cross installperl/' \                   
        -e '/$(MAKE) extras.install/d' \                                               
        -e '/\.\/perl installman/c\    @echo installman \$(DESTDIR)' \                   
        perl-5.10.0/Makefile.SH                                               
#mkdir -p $PKG/perl-5.10.0                                                                   
奥拓汽车价格#rm -rf $PKG/perl-5.10.0/*                                                                   
#cd perl-5.10.0/Cross                                                                   
#make ARCH=arm CROSS_COMPILE=arm-926ejs-linux-                                               
#make DESTDIR=$PKG/perl-5.10.0 install                                               
修改后:
#!/bin/sh                                                                         
广州本田2.0
tar -xzvf $PKG/perl-5.10.                                                 
patch -Np0 -i perl-5.10.0-cross.patchvenz                                                
sed -i 's/arm-unknown-linux-gnu-/arm-926ejs-linux-/' \                        奥迪s5双门
        perl-5.10.0/Cross/Makefile                                                 
sed -i '/^PERL =/c\PERL = ../miniperl-cross' perl-5.10.0/utils/Makefile.SH                 
sed -i -e '/^generate_uudmap/c\generate_uudmap\\\$(EXE_EXT): generate_uudmap.c'      -e '/$(CC).*generate_uudmap/c\    gcc \\\$(LDFLAGS) -o generate_uudmap generate_uudmap.c \\\$(libs)' perl-5.10.0/Makefile.SH                                                 
sed -i -e 's/\.\/perl installperl/\.\/miniperl-cross installperl/' \                       
        -e '/$(MAKE) extras.install/d' \                                                 
        -e '/\.\/perl installman/c\    @echo installman \$(DESTDIR)' \                       
        perl-5.10.0/Makefile.SH                                                                                   
                                                                                                                   
cd perl-5.10.0/Cross                                                                     
make ARCH=arm CROSS_COMPILE=arm-linux-                                                 
make DESTDIR=$PKG/perl-5.10.0 install                                               
红字体表示已修改过的,可以根据实际情况修改相应的路径和宏命令
执行脚本进行交叉编译
./install
在编译过程中如何出现一些错误,请检查install配置是否修改正确,特别是make ARCH=arm CROSS_COMPILE=arm-linux-这个需要重点注意,还有就是路径一定要正确.