在嵌入式ram上面交叉编译perl 5.10.1,嵌入式编译perl脚本语言的记录和方法:
先下载Perl源码:https://www.perl.org/get.html , 下载版本是5.10.1
下载Perl交叉编译源码补丁: https://sourceforge.net/projects/perlcross.berlios/files/, 下载版本是:perl-5.10.0-cross-0.3.tar.gz
分别解压连个文件到同一个目录下;
在ubuntu中安装 perlbrew:
sudo apt-get install perlbrew perlbrew init source ~/perl5/perlbrew/etc/bashrc perlbrew install perl-5.10.1
等待perlbrew安装完毕;
合并 两个解压出来的perl目录,进入perl-5.10.1的Cross目录中:
cp -rfv perl-5.10.0/* perl-5.10.1/ cd perl-5.10.1/Cross
修改perl的config文件
gedit Cross/config ##或者 vi gedit Cross/config
文件内容如下注意加了星号的内容:
### Target Arch ** ARCH = arm ** #ARCH = i386-pc #ARCH = sh4 #ARCH = mips #ARCH = mipsel #ARCH = ppc ## Specific arm **#CONFIG_TARGET_ARM_SA11X0 = 1** #CONFIG_TARGET_ARM_XSCALE = 1 ### Target OS **OS = linux** #OS = solaris2.8
上面加粗字体表示注意的或者修改的;
修改当前目录(Cross目录)中的Makefile文件:
先改变一下目录内容的权限:
chmod 777 /Cross/*
修改的Makefile文件内容:
export TOPDIR=${shell pwd}
include $(TOPDIR)/config
export CFLAGS
** export SYS=arm-linux **
** export CROSS=/stuff/bitbake/bin/tmp/sysroots/i686- linux/usr/armv7a/bin/arm-angstrom-linux-gnueabi- **
** export LD_LIBRARY=/stuff/bitbake/bin/tmp/sysroots/i686-linux/usr/lib:$(LD_LIBRARY_PATH) **
export FULL_OPTIMIZATION = -fexpensive-optimizations -fomit-frame-pointer -O2
export OPTIMIZATION = -O2
export CC = arm-angstrom-linux-gnueabi-gcc
export CXX = arm-angstrom-linux-gnueabi-g++
export LD = arm-angstrom-linux-gnueabi-ld
export STRIP = arm-angstrom-linux-gnueabi-strip
export AR = arm-angstrom-linux-gnueabi-ar
export RANLIB = arm-angstrom-linux-gnueabi-ranlib
make CC=arm-angstrom-linux-gnueabi-gcc ARCH=arm patch
make CC=arm-angstrom-linux-gnueabi-gcc ARCH=arm perl
编译会出错,但是没关系,会在根目录生成perl可执行文件;