拓冰建站拓冰建站
首页 / 资讯中心 / 正文

跨平台编译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.xz1.2 主机环境主机环境为 x86_64 Linux 系统Ubuntu 22.04并安装基础开发工具如make、gcc、g。可能需要安装的依赖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-dev1.3 解压工具链解压 GCC 工具链到你的存储路径我的路径为sheshe-virtual-machine:~/arm-toolchain/gcc-arm-10.2$ pwd /home/she/arm-toolchain/gcc-arm-10.21.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.101.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 CCgcc export CXXg我的路径和指令为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 CCgcc export CXXg2. 编译配置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然后使用以下命令生成 Makefilesheshe-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 \ -cstd c14 \ -qt-zlib \ -qt-libpng \ -qt-libjpeg \ -no-openssl \ -nomake examples \ -nomake tests \ -no-pch \ -no-opengl \ -skip qtwayland \ -skip qtwebengine3. 编译与安装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
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门