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

在Ubuntu 18.04上为ARM板搭建Qt Creator交叉编译环境(Qt5.12.9 + tslib)

在Ubuntu 18.04上构建ARM嵌入式Qt开发环境全指南

当开发者需要在资源受限的ARM嵌入式设备上部署Qt应用程序时,搭建高效的交叉编译环境成为关键挑战。本文将深入解析如何在Ubuntu 18.04桌面环境中,配置完整的Qt Creator IDE与ARM架构Qt SDK(含tslib触摸支持),建立从编码到部署的完整工作流。

1. 环境准备与工具链配置

在开始构建交叉编译环境前,需要确保开发主机具备以下基础条件:

  • Ubuntu 18.04 LTS:相较于早期版本,18.04提供了更现代的GLIBC和工具链支持
  • 至少50GB可用磁盘空间:Qt源码编译过程会产生大量中间文件
  • 8GB以上内存:推荐配置以避免编译过程中出现内存不足错误

首先安装必要的依赖项:

sudo apt update sudo apt install -y gcc g++ make perl python git libgl1-mesa-dev \ libxcb-xinerama0-dev libxkbcommon-dev libxkbcommon-x11-dev \ libfontconfig1-dev libfreetype6-dev libx11-dev libxext-dev \ libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libx11-xcb-dev \ libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev \ libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev \ libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev \ libxcb-render-util0-dev libxcb-util-dev

对于ARM交叉编译器,推荐使用Linaro GCC 7.5.0版本:

wget https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz sudo tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz -C /opt

配置环境变量:

echo 'export PATH=/opt/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin:$PATH' >> ~/.bashrc source ~/.bashrc

验证编译器安装:

arm-linux-gnueabihf-gcc --version # 应输出类似:gcc version 7.5.0 (Linaro GCC 7.5-2019.12)

2. tslib触摸库的编译与配置

tslib为嵌入式系统提供了标准化的触摸输入处理层,是Qt触摸功能的基础依赖。编译过程需特别注意与目标设备的输入设备匹配。

获取最新tslib源码并编译:

git clone https://github.com/libts/tslib.git cd tslib ./autogen.sh ./configure --host=arm-linux-gnueabihf \ --prefix=/opt/tslib \ --enable-input=yes \ --enable-static=no make -j$(nproc) sudo make install

关键配置参数说明:

参数作用推荐值
--host指定交叉编译目标架构arm-linux-gnueabihf
--prefix安装目录/opt/tslib
--enable-input启用输入设备支持yes
--enable-static是否构建静态库no

安装完成后,需要验证生成的库文件:

ls /opt/tslib/lib # 应看到libts.so等动态库文件

3. Qt 5.12.9源码编译详解

Qt源码的交叉编译是环境搭建中最复杂的环节,需要特别注意平台特性配置。

3.1 源码获取与解压

wget https://download.qt.io/archive/qt/5.12/5.12.9/single/qt-everywhere-src-5.12.9.tar.xz tar -xvf qt-everywhere-src-5.12.9.tar.xz cd qt-everywhere-src-5.12.9

3.2 关键配置文件修改

编辑qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf

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 = arm-linux-gnueabihf-gcc QMAKE_CXX = arm-linux-gnueabihf-g++ QMAKE_LINK = arm-linux-gnueabihf-g++ QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++ # modifications to linux.conf QMAKE_AR = arm-linux-gnueabihf-ar cqs QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy QMAKE_NM = arm-linux-gnueabihf-nm -P QMAKE_STRIP = arm-linux-gnueabihf-strip

3.3 编译配置脚本

创建configure.sh配置脚本:

#!/bin/bash ./configure -prefix /opt/arm-qt5.12.9 \ -confirm-license \ -opensource \ -release \ -no-opengl \ -no-xcb \ -qt-libjpeg \ -qt-libpng \ -qt-zlib \ -qt-pcre \ -no-dbus \ -no-cups \ -no-glib \ -no-iconv \ -no-icu \ -no-eglfs \ -linuxfb \ -I/opt/tslib/include \ -L/opt/tslib/lib \ -tslib \ -nomake examples \ -nomake tests \ -skip qtvirtualkeyboard \ -xplatform linux-arm-gnueabi-g++

赋予执行权限并运行:

chmod +x configure.sh ./configure.sh

3.4 编译与安装

make -j$(nproc) 2>&1 | tee build.log sudo make install

编译完成后验证安装:

ls /opt/arm-qt5.12.9/bin # 应看到qmake等关键工具

4. Qt Creator集成开发环境配置

Qt Creator作为官方IDE,其交叉编译环境配置需要特别注意工具链的匹配。

4.1 Qt Creator安装

wget https://download.qt.io/archive/qt/5.12/5.12.9/qt-opensource-linux-x64-5.12.9.run chmod +x qt-opensource-linux-x64-5.12.9.run ./qt-opensource-linux-x64-5.12.9.run

安装过程中需注意:

  • 选择"Custom Installation"
  • 确保勾选Qt Creator 4.11.0
  • 安装路径建议保持默认/opt/Qt5.12.9

4.2 交叉编译套件配置

打开Qt Creator后,按以下步骤配置:

  1. 添加Qt版本

    • 路径选择:/opt/arm-qt5.12.9/bin/qmake
    • 版本应自动识别为Qt 5.12.9(arm)
  2. 配置编译器

    • C++编译器路径:/opt/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
    • ABI设置:arm-linux-generic-elf-32bit
  3. 构建套件(Kit)

    • 名称:ARM-Qt5.12.9
    • 设备类型:Generic Linux Device
    • 编译器:选择刚配置的ARM GCC
    • Qt版本:选择刚添加的Qt 5.12.9(arm)

4.3 项目构建验证

创建测试项目时需注意:

  1. 项目类型选择"Qt Widgets Application"
  2. 构建套件选择"ARM-Qt5.12.9"
  3. 在.pro文件中添加tslib支持:
LIBS += -L/opt/tslib/lib -lts INCLUDEPATH += /opt/tslib/include

构建成功后,将生成的可执行文件复制到目标设备验证:

scp application root@arm-device:/home/root

5. 常见问题解决方案

5.1 C++11兼容性问题

若遇到C++11相关编译错误,需在.pro文件中添加:

QMAKE_CXXFLAGS += -std=c++11 CONFIG += c++11

5.2 触摸屏校准问题

在目标设备上创建/etc/pointercal校准文件:

export TSLIB_CALIBFILE=/etc/pointercal export TSLIB_CONFFILE=/etc/ts.conf export TSLIB_PLUGINDIR=/usr/lib/ts /usr/bin/ts_calibrate

5.3 字体显示异常处理

将中文字体拷贝到目标设备:

mkdir -p /usr/share/fonts cp source-han-sans.ttf /usr/share/fonts/ fc-cache -fv

在开发环境中,这些配置步骤虽然复杂,但一旦完成就能获得高效的ARM嵌入式Qt开发体验。实际项目中,建议将环境配置过程脚本化,方便团队共享和重复使用。

http://www.jsqmd.com/news/829635/

相关文章:

  • 内容做了一大堆,流量就是起不来?初创公司低成本获流的真实解法
  • Windows安卓应用安装器终极指南:3种方法实现跨平台无缝体验
  • 植物生理生态监测系统产品介绍和厂家推荐 - 品牌推荐大师
  • 2026年免费PDF转换软件怎么选?热门工具优缺点对比与推荐指南 - 软件小管家
  • 性比价很高的ai中转站
  • 手把手教你用hashcat和rar2john破解RAR5压缩包密码(保姆级图文教程)
  • 知名水果礼盒厂商对接方式amp;专属定制水果礼盒全套落地方案,海棠果礼盒/香妃果礼盒/小苹果礼盒,水果礼盒厂商哪家可靠 - 品牌推荐师
  • 宪意(山东)建筑拆除:济南拆门窗源头厂家 - LYL仔仔
  • 基于Magisk挂载机制的Android HTTPS流量监控完整技术方案
  • Ubuntu20.04安装Isaac Sim 4.5 + Isaac Lab 2.1
  • PDF怎么转Word?如何免费转换?2026年最新软件推荐对比 - 软件小管家
  • 北京金发钹祥金属材料贸易:专业的北京不锈钢焊接公司 - LYL仔仔
  • 82、【Agent】【OpenCode】bash 工具提示词(amend 风险)
  • PDF怎么转PPT?2026年免费转换方法和软件推荐 - 软件小管家
  • 1987年6月28日下午15-17点出生性格、运势和命运
  • 《拓扑不变量系统刻画》导读版研究报告(科普教育)
  • VTube Studio插件开发实战指南:如何快速构建虚拟主播互动系统
  • PDF怎么转Word?2026免费PDF转Word软件推荐与实测对比 - 软件小管家
  • Heightmapper完全指南:5步将全球地形数据变成3D模型
  • GitHub系统提示词库:提升大模型交互效率的工程实践指南
  • 5种应用级位置模拟技术:深入解析FakeLocation的Xposed Hook实现
  • 3步找回消失的离线登录按钮:PCL2启动器登录功能完整指南
  • 磷脂酰丝氨酸DHA哪个品牌更适合长期养护?脑健康成分稳定性释放率专业测评 - 博客万
  • Kalshi预测市场API封装库:简化自动化交易与策略开发
  • Hampel滤波器:鲁棒离群值检测与处理的原理、参数调优与实战
  • ILSpy技术深度解析:.NET程序集反编译的架构设计与实战应用
  • 终极解决方案:让苹果触控板在Windows上获得原生级精准触控体验
  • 硬核!字节前端专家耗时一周整理出大厂常考前端场景题合集
  • Virtual ZPL Printer:5步搭建专业级条码标签开发测试环境
  • Playwright,Web自动化测试