一. 准备工作
环境:
- Ubuntu 16.04
- perl-5.30.0
- perl-cross-1.3
1.1. 下载 perl 和 perl-cross
注意: perl 和 perl-cross 的版本要对应。
我这里使用的分别是 perl-5.30.0 和 perl-cross-1.3。
perl-cross-1.3 支持的版本有 perl-5.22.4,perl-5.24.4,perl-5.26.2,perl-5.28.2,perl-5.30.0,cperl-5.24.3,cperl-5.26.1.
1.2. 安装交叉工具链
$ sudo apt install gcc-arm-linux-gnueabihf
注: 如果已经安装过工具链,可跳过该步骤。
二. 配置和编译
2.1. 解压
$ tar xf perl-5.30.0.tar.gz
$ cd perl-5.30.0
$ tar --strip-components=1 -zxf ../perl-cross-1.3.tar.gz
2.2. 编译
$ ./configure --target=arm-linux-gnueabihf
configure 成功后显示:
Configuration completed for cross build
build platform: x86_64-linux
C compiler: gcc
linker: gcc
ar: ar
ranlib: ranlib
objdump: objdump
target platform: arm-linux
C compiler: arm-linux-gnueabihf-gcc
ld: arm-linux-gnueabihf-gcc
ar: arm-linux-gnueabihf-ar
ranlib: arm-linux-gnueabihf-ranlib
objdump: arm-linux-gnueabihf-objdump
prefix: /usr
sysroot:
installation prefix:
executables: /usr/bin
scripts: /usr/bin
privlib: /usr/lib/perl5/5.30.0
archlib: /usr/lib/perl5/5.30.0/arm-linux
section 1 man pages: /usr/share/man/man1 (with '1' extension)
section 3 man pages: /usr/share/man/man3 (with '3' extension)
拷贝 config.sh 到 Cross 目录:
$ cp config.sh Cross/config.sh-arm-linux-gnueabihf
进入 Cross 目录修改 config 文件:
$ cd Cross
$ vim config
注意: ARCH 和 OS 和上面 config.sh-arm-linux-gnueabihf 最好对应,否则后面编译时可能找不到。
### Target Arch
ARCH = arm
### Target OS
OS = linux-gnueabihf
打 patch 然后编译 perl:
$ make patch
$ make perl
make perl 后会提示失败,这里不用管它,perl-5.30.0 目录下已经生成了 perl 程序,拷贝到 arm 环境执行看下:
$ perl -v
This is perl 5, version 30, subversion 0 (v5.30.0) built for arm-linux-gnueabihf
参考
版权声明
原文链接:https://blog.csdn.net/fengfengdiandia/article/details/93060326