Hhan_jin_feiupload lycium 2
1e1abdc5创建于 2023年7月12日历史提交

make 工具arm64-v8a交叉编译说明

简介

GNUMake是一种工具,用于控制从程序的源文件生成程序的可执行文件和其他非源文件。

本文档主要介绍其arm64位交叉编译步骤

编译步骤

编译工具链下载

  • 64位编译工具:gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz 下载链接

解压编译工具链

  • 解压64位 tar xvJf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz

  • 进入解压后的文件夹,查看bin目录下就有我们编译用到的工具链

下载解压make源码

创建编译目录

  • 进入源码解压后目录 cd make-4.4.1

  • 创建64位编译目录 mkdir arm64_v8a

设置交叉编译环境

  • 设置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

生成makefile

  • 进入64位编译路径 cd arm64_v8a
  • 执行如下命令生成Makefile
../configure --host="aarch64-linux" --prefix="${PWD}/install" 
  • 修改Makefile,将AM_LDFLAGS = -Wl,--export-dynamic 改成AM_LDFLAGS = 即删除后面的-Wl,--export-dynamic

编译make源码

在对应的编译目录执行make CFLAGS="-static" LDFLAGS="-static" VERBOSE=1,执行结果截图如下

 success

安装make

在对应编译目录执行 make install,执行结果截图如下:

 makesuccess

编译安装完成

查看编译目录下的install文件夹,并可通过file bin/make 看到文件属性

 file64

运行结果

将安装目录install文件夹压缩打包,发送到OHOS开发板中

#打包对应编译目录下的install文件夹
tar -zcvf install.tar.gz install/
#发送到OHOS系统开发板上
hdc file send xxx\install.tar.gz /data   
#进入开发板/data,解压install.tar.gz
hdc shell
cd /data
tar -zxvf install.tar.gz

进入install/bin目录,执行./make -version 效果如下截图

 run_file