Qt5.14.2 aarch64静态交叉编译:单文件部署摆脱依赖
做嵌入式的朋友大概率都碰过这种场面Qt5.14.2 的程序在 x86 开发机上编译运行一切正常一拷到 aarch64 板子上终端立刻甩你一句 error while loading shared libraries。然后你就开始找 libQt5Core.so.5、libQt5Gui.so.5、平台插件、图像插件、字体库一层层扒下去人当场就麻了。我印象最深的一次是给一台 aarch64 工控设备做 HMI 界面光让 GUI 程序在板子上起来前后折腾了三天最后罪魁祸首是一个谁也不太注意的依赖库。也是从那次之后我开始认真做 Qt5.14.2 在 aarch64 平台上的静态交叉编译把依赖链在编译阶段就全部焊死进二进制部署时只往板子上拷一个可执行文件别的什么都不用带。这篇手册就是把这套流程从零讲透涵盖工具链选型、mkspec 定制、configure 参数裁剪、静态插件注册、目标板验证几个环节。不管你是刚上手嵌入式 Qt还是做惯了动态库部署、想彻底摆脱依赖问题的老手都能直接照着做。1. 为什么要在主机上做 aarch64 的 Qt5.14.2 静态交叉编译静态交叉编译这个词拆开看其实就三件事编译发生在 x86_64 主机上产物面向 aarch64 目标平台库被链接成静态形式。Q