8c3bdbb6创建于 2023年7月24日历史提交

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源码,执行结果截图如下

 buildsuccess

安装perl

执行 make install,执行结果截图如下

 install

编译安装完成

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

 file64

运行结果

将安装目录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 效果如下截图

 run