perl 工具arm64-v8a交叉编译说明
简介
Perl:一种功能丰富的计算机程序语言,运行在超过100种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发。
编译步骤
编译工具链下载
- 64位编译工具:gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz 下载链接
解压编译工具链
-
解压64位 gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
-
进入解压后的文件夹,查看bin目录下就有我们编译用到的工具链
下载解压perl源码
- 下载perl源码,下载链接 (以5.36.1为例)
- 通过tar命令解压源码 tar -zxf perl-5.36.1.tar.gz
下载perl交叉编译包源码
- 下载perl交叉编译包源码,下载链接(5.36.1版本对应的perl-cross就是1.4.1版本)
- 进入perl源码解压后目录 cd perl-5.36.1
- 在perl上解压perl交叉编译包,覆盖Makefile,命令如下
tar --strip-components=1 -zxf ../perl-cross-1.4.1.tar.gz
设置交叉编译环境
- 设置64位交叉编译环境, xxx 是表示工具链存放的目录路径
export TOOLS=/xxx/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin
export AS=${TOOLS}/aarch64-linux-gnu-as
export CC=${TOOLS}/aarch64-linux-gnu-gcc
export CXX=${TOOLS}/aarch64-linux-gnu-g++
export LD=${TOOLS}/aarch64-linux-gnu-ld
export STRIP=${TOOLS}/aarch64-linux-gnu-strip
export RANLIB=${TOOLS}/aarch64-linux-gnu-ranlib
export OBJDUMP=${TOOLS}/aarch64-linux-gnu-objdump
export OBJCOPY=${TOOLS}/aarch64-linux-gnu-objcopy
export NM=${TOOLS}/aarch64-linux-gnu-gcc-nm
export AR=${TOOLS}/aarch64-linux-gnu-ar
export READELF="${TOOLS}/aarch64-linux-gnu-readelf"
生成makefile
- 执行如下命令生成makefile
./configure --target=aarch64-linux-gnu --prefix="${PWD}/arm64_v8a_install"
编译perl源码
执行 make CFLAGES="-static" LDFLAGS="-static" VERBOSE=1 命令编译perl源码,执行结果截图如下

安装perl
执行 make install,执行结果截图如下

编译安装完成
进入安装目录下的arm64_v8a_install/bin文件夹,并可通过file perl看到文件属性

运行结果
将安装目录arm64_v8a_install文件夹压缩打包,发送到OHOS开发板中
#打包对应编译目录下的install文件夹
tar -zcvf arm64_v8a_install.tar.gz arm64_v8a_install/
#发送到OHOS系统开发板上
hdc file send xxx\arm64_v8a_install.tar.gz /data
#进入开发板/data,解压arm64_v8a_install.tar.gz
hdc shell
cd /data
tar -zxvf arm64_v8a_install.tar.gz
进入arm64_v8a_install/bin目录,执行./perl --version 效果如下截图
