当前位置: 首页 > news >正文

跨平台编译QT5.15.10实战指南

Qt 5.15.10 ARM64 交叉编译环境配置与编译指南

1. 环境配置

1.1 下载 ARM64 工具链

下载 ARM64 工具链(如gcc-arm-10.2),确保包含aarch64-none-linux-gnu-g++编译器。

链接:gcc 官网下载 版本可选,建议版本 10.2。

  • 下载ARM64工具链(如gcc-arm-10.2),确保包含aarch64-none-linux-gnu-g++编译器。链接:gcc官网下载版本可选 建议版本10.2直接下载地址:https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/10.2-2020.11/binrel/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xzhttps://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/10.2-2020.11/binrel/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz

1.2 主机环境

主机环境为 x86_64 Linux 系统(Ubuntu 22.04),并安装基础开发工具(如makegccg++)。

可能需要安装的依赖:

sudo apt update sudo apt install -y build-essential git python3 libgl1-mesa-dev \ libxkbcommon-dev libxcb-xinerama0-dev libxcb-icccm4-dev \ libxcb-image0-dev libxcb-keysyms1-dev libxcb-render-util0-dev \ libxcb-xkb-dev libxkbcommon-x11-dev flex bison gperf \ libssl-dev ninja-build ruby perl python3-pip \ libfontconfig1-dev libfreetype6-dev libx11-dev \ libxext-dev libxfixes-dev libxi-dev libxrender-dev \ libxcb1-dev libx11-xcb-dev libxcb-glx0-dev

1.3 解压工具链

解压 GCC 工具链到你的存储路径;我的路径为:

she@she-virtual-machine:~/arm-toolchain/gcc-arm-10.2$ pwd /home/she/arm-toolchain/gcc-arm-10.2

1.4 获取 Qt 源码

从QT官方存档下载qt-everywhere-src-5.15.10.tar.xz。或者我的上传:

解压缩源码到你的存储路径,我的路径为桌面下:

~/Desktop/qt-everywhere-opensource-src-5.15.10/qt-everywhere-src-5.15.10$ pwd /home/she/Desktop/qt-everywhere-opensource-src-5.15.10/qt-everywhere-src-5.15.10

1.5 设置环境变量

export SYSROOT="/path/to/gcc-arm-10.2/aarch64-none-linux-gnu/libc" export LDFLAGS="-Wl,-rpath-link=$SYSROOT/lib -Wl,-rpath-link=$SYSROOT/usr/lib" export CC="gcc" export CXX="g++"

我的路径和指令为:

export SYSROOT="/home/she/arm-toolchain/gcc-arm-10.2/aarch64-none-linux-gnu/libc" export LDFLAGS="-Wl,-rpath-link=$SYSROOT/lib -Wl,-rpath-link=$SYSROOT/usr/lib" export CC="gcc" export CXX="g++"

2. 编译配置

2.1 修改 qmake.conf

编辑文件qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf,指定交叉编译工具链路径。

文件地址:

/home/she/Desktop/qt-everywhere-opensource-src-5.15.10/qt-everywhere-src-5.15.10/qtbase/mkspecs/linux-aarch64-gnu-g++

内容改为:

# # qmake configuration for building with aarch64-none-linux-gnu-g++ # MAKEFILE_GENERATOR = UNIX CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib include(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) # modifications to g++.conf QMAKE_CC = aarch64-none-linux-gnu-gcc QMAKE_CXX = aarch64-none-linux-gnu-g++ QMAKE_LINK = aarch64-none-linux-gnu-g++ QMAKE_LINK_SHLIB = aarch64-none-linux-gnu-g++ # modifications to linux.conf QMAKE_AR = aarch64-none-linux-gnu-ar cqs QMAKE_OBJCOPY = aarch64-none-linux-gnu-objcopy QMAKE_NM = aarch64-none-linux-gnu-nm -P QMAKE_STRIP = aarch64-none-linux-gnu-strip load(qt_config)

2.2 创建构建目录并生成 Makefile

在源码源文件目录下生成一个build文件夹:

mkdir build-qt5.15.10-arm64 cd build-qt5.15.10-arm64

然后使用以下命令生成 Makefile:

she@she-virtual-machine:~/Desktop/qt-everywhere-opensource-src-5.15.10/build-qt5.15.10-arm64$ ../qt-everywhere-src-5.15.10/configure \ -prefix /opt/qt5.15.10-arm64 \ -sysroot /home/she/arm-toolchain/gcc-arm-10.2/aarch64-none-linux-gnu/libc \ -xplatform linux-aarch64-gnu-g++ \ -platform linux-g++-64 \ -opensource -confirm-license \ -release \ -c++std c++14 \ -qt-zlib \ -qt-libpng \ -qt-libjpeg \ -no-openssl \ -nomake examples \ -nomake tests \ -no-pch \ -no-opengl \ -skip qtwayland \ -skip qtwebengine

3. 编译与安装

3.1 编译

运行make -j$(nproc)启用多线程编译。

若出现依赖错误,检查$SYSROOT中是否缺失库文件(如libz.so)。

3.2 安装

执行make install,生成的文件将位于sysroot:/opt/qt5.15.10-arm64


4. 验证与调试

  • 验证sysroot/opt/qt5.15.10-arm64/bin/qmake是否能正确生成 ARM64 目标平台的 Makefile。

    注意:这里的qmake是 x86 文件,用于在 x86 上生成 Makefile,使用这个 Makefile 去交叉编译出 ARM64 的程序。

  • 库路径错误:通过LD_LIBRARY_PATH显式指定$SYSROOT/usr/lib

  • 头文件缺失:检查configure输出是否提示缺失依赖(如 OpenSSL)。


5. 附件

编译完成,安装好的gcc工具链:gcc-10.2-ARM64-QT5.15.10

目录结构
tree -L 3 /home/she/arm-toolchain/gcc-arm-10.2/aarch64-none-linux-gnu/libc/ /home/she/arm-toolchain/gcc-arm-10.2/aarch64-none-linux-gnu/libc/ ├── opt │ ├── qt5.15.10-arm64 │ │ ├── bin │ │ ├── doc │ │ ├── include │ │ ├── lib │ │ ├── mkspecs │ │ ├── plugins │ │ ├── qml │ │ └── translations │ └── qt5.15.10-arm64-minimal │ ├── bin │ ├── doc │ ├── include │ ├── lib │ ├── mkspecs │ └── plugins
http://www.jsqmd.com/news/1349119/

相关文章:

  • 2026年8月靠谱的 青岛月子中心机构选择参考**指南 - 奔跑123
  • AI赋能积木报表:从自然语言到智能决策的技术架构与实践
  • WeChatMsg:如何用开源工具实现微信聊天记录的永久保存与智能分析?
  • 时空A星算法在多机器人路径规划中的MATLAB实现
  • 杰理之DAC差分输出幅值不够,只有1.1V【篇】
  • 2026年南充广告设计制作安装|华蔓广告|楼顶发光字,户外广告牌,幕墙发光字等标识制作一站式服务厂家 - 四川华蔓广告有限公司
  • 如何永久保存微信聊天记录:免费工具终极指南
  • 揭秘ESP32C6 WiFi6智能语音助手:从硬件原型到AI交互的完整架构
  • 2026-08-07_比亚迪见习后对智能制造彻底祛魅了_B站视频整理
  • mikupad架构解密:单HTML文件如何实现复杂LLM交互逻辑
  • 3分钟掌握本地图片搜索神器:ImageSearch帮你秒级找到任何图片
  • react-typeahead性能优化指南:让你的自动完成组件如丝般顺滑
  • 如何通过zotero-style插件让文献管理变得生动有趣:5个视觉化创新功能
  • 基于VS Code搭建高效RT-Thread开发环境:从配置到调试全攻略
  • HarmonyOS Next 系列之HTTP请求封装和Token持久化存储(四)
  • Osmosis工具高效提取OSM建筑数据全流程
  • 5步掌握PoeCharm中文版:从零到精通的《流放之路》角色构建终极指南
  • 10分钟打造你的第一个企业级无头CMS:Strapi零代码入门指南
  • 河北可靠的防护罩回收商怎么选才靠谱看坤腾机床 - 品牌优推
  • Windows 7 SP2:让经典系统在现代硬件上重获新生
  • Sonic实验性特性探索:sonic_experimental模块的高级用法
  • 深圳搬家公司怎么选?2026年最全筛选标准与优质服务商名录 - 禧燕搬家
  • 2026深圳搬家避坑:雨天搬家、夜间搬家的额外风险注意事项 - 禧燕搬家
  • 中国地面臭氧数据集(2013-2020,日/月/年值)
  • LangGraph Subgraph嵌套:模块化AI工作流设计实战
  • 2026、8 月太仓市防水、防水公司、屋面防水、楼顶防水、正规公司 ** 推荐 + 避坑指南 - 万至防水
  • 终极指南:CTFAK 2.0游戏资源提取工具完全解析
  • ROS 2环境下YOLO系列目标检测深度部署与性能优化指南
  • 解决cmp-nvim-lsp-signature-help常见问题:开发者必看的排错指南
  • SGLang性能调优完全指南:从内核分析到系统级优化的5个关键技术