arm64上面运行armhf程序

arm64屏上跑armhf程序

起因:我们之前给客户的屏是armhf的,由于性能问题需要升级,现在提供给他们的屏是arm64的。

客户之前在armhf环境开发时花钱买了armhf版本的第三方的静态库使用,

现在升级用arm64的话又得花钱买arm64版本的库(据说挺贵的客户不想重新花钱买),

问我们能不能在arm64环境继续使用armhf版本的第三方静态库。

思路:由于arm64是兼容armhf的,即armv8兼容armv7,所以理论上客户可以直接编译它们的程序直接在arm64上的屏上运行,类似windows一样64位的兼容32位的。

所以我们直接还是使用原来的armhf编译链编译程序并连接第三方静态库,

然后放到我们arm64的屏上面跑,结果报错no find Directory,根本跑不起来。

排查原因:我们屏上面没有armv7的环境和动态库(好比win64位的电脑只有64位的库没有32位的库)

解决办法:

  1. 使用静态编译,即编译的时候加上-static 参数, 即armhf-linux-g++ -static main.c -lotherdrm ,缺点编译出来的可执行程序很大,但是不需要依赖其他动态库
  2. 将armv7环境sys-rootfs拷贝到arm64上面,准备一套armv7的环境,缺点整套armv7环境占用空间较大磁盘空间,所以最终否决,决定使用静态编译方案
相关推荐
老猿讲编程2 天前
提升ARM Cortex-M系统性能的关键技术:TCM技术解析与实战指南
arm开发·arm·c
亿道电子Emdoor3 天前
【ARM】ARM架构基础知识
arm开发·架构·arm
toradexsh4 天前
Yocto meta-toradex-security layer 使用 TI AM62 安全启动功能
linux·安全·arm·ti·am62
亿道电子Emdoor5 天前
【ARM】当选择AC5时每次点击build都会全编译
arm开发·arm
亿道电子Emdoor6 天前
[ARM]MDK出现报错error: A\L3903U的解决方法
arm开发·stm32·单片机·arm
witton11 天前
x86版Ubuntu的容器中运行ARM版Ubuntu
linux·arm开发·ubuntu·docker·容器·arm·qemu
witton13 天前
x86版的ubuntu上使用qemu运行arm版ubuntu
arm开发·ubuntu·arm·qemu·aarch64·qemu_efi.fd·cortex-a72
alin、m13 天前
银河麒麟(Kylin) - V10 GFB高级服务器操作系统ARM64部署昇腾910b训练机以及Docker安装
运维·服务器·docker·arm·kylin
马里奥的蘑菇云13 天前
ARM GCC内联汇编
汇编·arm
liuluyang53018 天前
linux 4.14 kernel屏蔽arm arch timer的方法
嵌入式硬件·arm·arch_timer·coretime