news 2026/4/21 16:49:32

保姆级教程:在Ubuntu 20.04上为ARM开发板配置QtCreator 4.14(含gcc/g++编译器避坑指南)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
保姆级教程:在Ubuntu 20.04上为ARM开发板配置QtCreator 4.14(含gcc/g++编译器避坑指南)

保姆级教程:在Ubuntu 20.04上为ARM开发板配置QtCreator 4.14(含gcc/g++编译器避坑指南)

刚接触嵌入式开发的工程师们,是否曾被QtCreator与ARM工具链的配置折磨得焦头烂额?当你在Ubuntu系统上反复尝试却始终遭遇"Path or permissions wrong"的报错时,是否想过放弃?本文将用最接地气的方式,带你一步步完成这个看似复杂的过程。不同于网络上零散的教程,我会把每个环节的细节和可能遇到的坑都摊开来讲——毕竟,谁还没在编译器路径配置上栽过跟头呢?

1. 环境准备与基础工具安装

在开始配置之前,我们需要确保系统处于最佳起点。Ubuntu 20.04虽然已经预装了不少开发工具,但针对ARM交叉编译还需要一些特别的准备。先打开终端,执行以下命令更新软件源:

sudo apt update && sudo apt upgrade -y

接下来安装基础编译工具链,这是后续工作的基石:

sudo apt install build-essential cmake git ninja-build -y

注意:如果你之前尝试过配置但失败了,建议先清理残留文件。执行sudo apt autoremove --purge qtcreator可以彻底移除旧版本。

1.1 安装依赖库

ARM交叉编译需要特定的运行时库支持,这些依赖往往容易被忽略:

sudo apt install libgl1-mesa-dev libxkbcommon-x11-0 libncurses5-dev \ libssl-dev libicu-dev libclang-10-dev zlib1g-dev -y

验证gcc版本是否满足要求(至少7.4以上):

gcc --version

如果版本过低,可以通过以下命令安装新版:

sudo apt install gcc-9 g++-9 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90

2. 获取QtCreator 4.14的正确姿势

2.1 官方下载与验证

直接从Qt官方仓库获取4.14版本(虽然较旧但稳定性经过验证):

wget https://download.qt.io/official_releases/qtcreator/4.14/4.14.0/qt-creator-opensource-linux-x86_64-4.14.0.run

下载完成后务必验证文件完整性:

echo "a1e0d9242e951dde0d4d5a357a5a48be qt-creator-opensource-linux-x86_64-4.14.0.run" | md5sum -c

2.2 安装与初次配置

赋予执行权限并启动安装:

chmod +x qt-creator-opensource-linux-x86_64-4.14.0.run ./qt-creator-opensource-linux-x86_64-4.14.0.run

安装过程中有几个关键选项需要注意:

  • 选择"Qt Creator 4.14.0"组件
  • 勾选"Desktop GCC"(即使目标是ARM也需要本地编译器)
  • 创建桌面快捷方式方便后续使用

安装完成后首次启动时,建议跳过初始向导,我们后续会手动配置更精确的环境。

3. ARM工具链的深度配置

3.1 获取ARM编译器

推荐使用Linaro提供的gcc-arm工具链,这是经过充分测试的稳定版本:

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

解压到/opt目录并设置权限:

sudo tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz -C /opt sudo chown -R $USER:$USER /opt/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf

3.2 环境变量配置

在~/.bashrc末尾添加以下内容:

export ARM_GCC_PATH=/opt/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin export PATH=$PATH:$ARM_GCC_PATH

使配置立即生效:

source ~/.bashrc

验证编译器是否可用:

arm-linux-gnueabihf-gcc --version

如果看到版本信息输出,说明工具链配置成功。

4. QtCreator项目配置实战

4.1 工具链设置

启动QtCreator,按以下路径配置:

  1. 菜单栏选择"Tools" → "Options"
  2. 左侧选择"Kits" → "Compilers"
  3. 点击"Add" → "GCC" → "C"
  4. 在"Compiler path"中输入:/opt/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
  5. 相同方法添加C++编译器,选择对应的g++路径

4.2 构建套件(Kit)配置

创建一个新的构建套件:

  • 名称:ARM Qt 5.12 GCC
  • Device type:Generic Linux Device
  • Compiler C:选择刚添加的ARM GCC
  • Compiler C++:选择ARM G++
  • Qt version:需要额外配置(见下一节)
  • Debugger:自动检测

4.3 qmake的特殊配置

从开发板供应商处获取对应的Qt库,解压后找到qmake路径。在QtCreator中:

  1. "Tools" → "Options" → "Kits" → "Qt Versions"
  2. 点击"Add",选择开发板Qt库中的qmake
  3. 回到Kits界面,为之前创建的套件选择这个Qt版本

提示:如果开发板使用特殊文件系统(如yocto构建),可能需要额外配置sysroot路径。这通常在开发板SDK中有说明文档。

5. 常见问题与解决方案

5.1 权限错误处理

当遇到"Path or permissions wrong"错误时,按以下步骤排查:

  1. 检查编译器路径是否包含空格或特殊字符
  2. 确认当前用户对工具链目录有执行权限:
    ls -l /opt/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin
  3. 尝试在终端直接运行编译器命令,看是否报错

5.2 库文件缺失问题

交叉编译时常见的.so文件缺失,可以通过以下方式解决:

sudo apt install libc6-armhf-cross libstdc++6-armhf-cross

5.3 调试配置技巧

在QtCreator中配置远程调试:

  1. 菜单栏选择"Projects" → "Run Settings"
  2. 在"Run configuration"中添加"Custom Executable"
  3. 设置可执行文件路径(开发板上的路径)
  4. 配置设备部署选项(需要提前设置好SSH连接)

6. 项目构建与部署优化

6.1 构建参数调整

在.pro文件中添加以下配置可优化ARM代码生成:

QMAKE_CFLAGS += -march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=hard QMAKE_CXXFLAGS += $$QMAKE_CFLAGS

6.2 自动化部署脚本

创建deploy.sh脚本实现一键部署:

#!/bin/bash scp ./your_app root@开发板IP:/usr/local/bin/ ssh root@开发板IP "chmod +x /usr/local/bin/your_app"

6.3 性能监控配置

在开发板上安装perf工具进行性能分析:

sudo apt install linux-tools-generic perf stat -e cycles,instructions,cache-references your_app

配置QtCreator与perf联动:

  1. "Analyze" → "Perf Profiler" → "Start Recording"
  2. 运行应用程序
  3. 停止记录后查看热点函数分析

7. 高级调试技巧

当程序在开发板上崩溃时,可以通过以下步骤获取有用信息:

  1. 在开发板上生成core dump:

    ulimit -c unlimited echo "/tmp/core.%e.%p" > /proc/sys/kernel/core_pattern
  2. 在QtCreator中配置远程调试:

    • 安装gdb-multiarch:
      sudo apt install gdb-multiarch
    • 在"Debugger"设置中选择gdb-multiarch
    • 加载core文件时指定架构:
      set architecture arm file your_app core-file /tmp/core.your_app.1234
  3. 使用QtCreator的调试控制台查看变量和调用栈

对于内存泄漏检测,可以在开发板上安装valgrind:

sudo apt install valgrind valgrind --leak-check=full ./your_app

在QtCreator中配置自定义分析工具:

  1. "Analyze" → "Valgrind Memory Analyzer"
  2. 设置远程执行命令
  3. 配置符号查找路径

8. 实际项目经验分享

在最近的一个工业控制器项目中,我们发现当使用-O2优化级别时,某些浮点运算会出现精度问题。解决方案是在.pro文件中添加:

QMAKE_CFLAGS_RELEASE -= -O2 QMAKE_CFLAGS_RELEASE += -O1 -ffloat-store

另一个常见问题是开发板与主机的时间不同步导致构建系统混乱。建议在部署脚本开头添加:

ssh root@开发板IP "date -s '$(date)'"

对于需要频繁部署调试的场景,可以配置QtCreator的"Custom Process Step":

  1. 在"Projects" → "Build & Run" → "Custom Process Steps"
  2. 添加SCP命令自动上传可执行文件
  3. 设置SSH命令自动重启应用

当使用触摸屏设备时,可能需要调整Qt的环境变量:

export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event1:rotate=90 export QT_QPA_PLATFORM=eglfs
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 16:48:33

xtquant接口实战:手把手教你用Python脚本实现自动化交易与行情订阅

xtquant接口实战:Python自动化交易与行情订阅全流程解析 在量化交易领域,能够灵活调用API实现自动化操作是每个策略开发者的核心需求。xtquant作为QMT平台的Python接口,为量化爱好者提供了从数据获取到交易执行的一站式解决方案。不同于简单的…

作者头像 李华
网站建设 2026/4/21 16:45:45

Docker 27医疗合规配置终极矩阵(覆盖ISO 13485:2016、IEC 62304 Class C、GDPR Art.32共27项技术控制项)

第一章:Docker 27医疗合规配置矩阵的体系化构建逻辑在医疗健康领域,容器化部署必须严格遵循《GB/T 35273—2020 信息安全技术 个人信息安全规范》《HIPAA 安全规则》及《医疗器械软件注册审查指导原则》等多维监管要求。Docker 27 版本引入的细粒度运行时…

作者头像 李华
网站建设 2026/4/21 16:43:10

面试经:一线城市搬砖,又面软件测试岗,5000就知足了...

今天有个大专生来我公司面试软件测试,他说在(地下城)64开搬砖,一个月能赚7万多,就在上星期,所有的号全被封了,所以来公司上班了,目前有一年多软件测试工作经验。 来面试的这个大专生…

作者头像 李华
网站建设 2026/4/21 16:43:10

软件测试人员该学习 Python 的七个理由

对于一个软件测试 工程师来说,选哪一门语言来入手编程一直是件非常纠结的事情,当然立志做一辈子功能测试的人除外。 值得庆幸的是,专门介绍软件,工具及网站服务的技术Blog上CarlCheo绘制了一张图表,告诉你该怎么开始伟…

作者头像 李华
网站建设 2026/4/21 16:41:31

3步突破:Save Image as Type让图片格式转换效率提升90%

3步突破:Save Image as Type让图片格式转换效率提升90% 【免费下载链接】Save-Image-as-Type Save Image as Type is an chrome extension which add Save as PNG / JPG / WebP to the context menu of image. 项目地址: https://gitcode.com/gh_mirrors/sa/Save-…

作者头像 李华