讲师中心 微信公众号
AI工具推荐 视频效率加速

基于Sublime Text与Qt-Creator交叉构建链进行嵌入式UI快速调试

老丽君_9453

老丽君_9453

发布时间:2026-07-30 06:44:26

|

518人浏览过

|

来源于php中文网

原创

交叉编译工具链必须在 Sublime Text 和 Qt Creator 中指向同一 sysroot,否则会导致 undefined reference 或调试失败;需统一 sysroot 路径、禁用 Sublime 自动构建、正确设置平台插件参数并配置 moc 目录索引。

基于sublime text与qt-creator交叉构建链进行嵌入式ui快速调试

交叉编译工具链必须在 Sublime Text 和 Qt Creator 中指向同一 sysroot

很多人在 Sublime Text 里用 xmake 或 make 编译成功,但 Qt Creator 调试时提示 undefined reference to 'qt_platform_plugin_linuxfb',根本原因不是 Qt 版本不匹配,而是两个环境读取的 sysroot 路径不一致——Qt Creator 从 Kit 配置里读,Sublime Text 则依赖 xmake.lua 或 Makefile 中硬编码的路径。

实操建议:

Qt Creator 18.0.2
Qt Creator 18.0.2

Qt Creator 18.0.2 Windows x86_64 历史版本安装包,适合需要旧版本 IDE、旧项目兼容、Qt/C++ 项目维护、构建套件配置和调试环境回退的用户使用。

下载
  • 统一 sysroot 路径:推荐放在 /opt/sysroots/arm64-linux-gnueabihf 这类固定路径,避免用 ~/work/sysroot 等含波浪线或空格的路径
  • Qt Creator 中检查:Tools → Options → Build & Run → Kits → [你的 Kit] → Sysroot 必须与 xmake.lua 中 set_toolchains("gcc", {sysroot = "/opt/sysroots/arm64-linux-gnueabihf"}) 完全一致
  • 验证方式:在两者中分别运行 arm-linux-gnueabihf-gcc -print-sysroot,输出应相同;若不同,ln -sf 软链接比改配置更可靠

Qt Creator 调试器无法加载符号?先关掉 Sublime Text 的 xmake 自动 rebuild

Sublime Text 插件(如 xmake-subl)默认开启保存即构建(on_save_build),而 Qt Creator 的调试器(gdbserver)在 attach 进程时会锁住可执行文件。若此时 Sublime Text 正在重写二进制,gdb 就报 Cannot access memory at address 0x... 或直接拒绝连接。

实操建议:

  • 禁用 Sublime Text 的自动构建:在 Preferences → Package Settings → xmake → Settings 中设 "on_save_build": false
  • Qt Creator 启动调试前,确认目标板上无残留进程:killall -9 your_app_name,否则 gdbserver 会复用旧 PID 导致符号错乱
  • 调试时只用 Qt Creator 构建 + 运行,Sublime Text 仅用于编辑和快速查看日志(tail -f /tmp/app.log)

UI 布局在 Qt Creator 设计器里正常,但在嵌入式板子上控件错位

这不是 DPI 或字体问题,而是 QApplication 初始化顺序和平台插件参数没对齐。Qt Creator 设计器用的是 desktop 平台插件,而嵌入式板子必须用 linuxfb,且需显式传参指定 framebuffer 设备路径。

实操建议:

  • 确保主函数入口中 QApplication 构造时传入平台参数:QApplication app(argc, argv, "linuxfb");,而不是默认构造
  • 启动时强制指定 framebuffer:./your_app -platform linuxfb:fb=/dev/fb0;若用 QT_QPA_PLATFORM 环境变量,必须在目标板 shell 中 export,不能只在 Qt Creator 的 Run 设置里填
  • 检查 framebuffer 分辨率是否与 UI 设计尺寸一致:cat /sys/class/graphics/fb0/videomode,若为 800x480,Designer 中也得按此分辨率拖控件

Sublime Text 里 Ctrl+Click 跳转不到 moc_ 文件里的信号槽实现

因为 moc 生成的文件(如 moc_mainwindow.cpp)不在 Sublime Text 的索引路径内,默认只扫描 src/ 和 include/。Qt Creator 能跳转,是它自己维护了 moc 输出目录的符号表。

实操建议:

  • 在 Sublime Text 的项目配置(Project → Edit Project)中添加:"folders": [{"path": "build/moc"}],其中 build/moc 是你 xmake 或 qmake 实际生成 moc 文件的位置
  • 若用 qmake,moc 目录通常在 build/ 下;若用 xmake,默认在 build/.xmake/linux/arm64/release/moc/,需确认实际路径
  • 跳转失效时,先执行一次完整构建(xmake clean && xmake),确保 moc 文件已生成且时间戳最新
交叉编译链本身不难配,难的是让两个编辑器对“同一个二进制”的理解完全同步——路径、符号、平台参数、构建时机,四者差一个,调试就变成猜谜。尤其注意 sysroot 和 fb device path 这两个看似次要却决定成败的字符串。

热门AI工具

更多
UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
C++ Qt图形开发
C++ Qt图形开发

本专题专注于 C++ Qt框架在图形界面开发中的应用,系统讲解窗口设计、信号与槽机制、界面布局、事件处理、数据库连接与跨平台打包等核心技能,通过多个桌面应用项目实战,帮助学员快速掌握 Qt 框架并独立完成跨平台GUI软件的开发。

4482

2025.08.15

C++桌面程序开发
C++桌面程序开发

本专题聚焦 C++ 在桌面端图形界面应用开发中的实战应用,系统讲解 Qt 框架的信号与槽机制、界面布局管理、事件响应、数据交互、样式美化与多窗口应用设计等核心知识。通过实战案例(如记事本应用、数据管理工具、系统监控面板),帮助学习者掌握 从UI设计到完整桌面软件开发的C++工程化能力。

1254

2025.10.23

C++ 图形界面开发基础(Qt方向)
C++ 图形界面开发基础(Qt方向)

本专题系统讲解 使用 C++ 与 Qt 进行图形界面(GUI)开发的核心技能,内容涵盖 Qt 项目结构、窗口组件、信号与槽机制、事件处理、布局管理、资源管理,以及跨平台编译与打包流程。通过多个小型桌面应用实战案例,帮助学习者掌握从界面设计到功能实现的完整 GUI 开发能力。

1421

2025.12.05

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

20

2026.10.10

Kratos框架HTTP与gRPC服务开发教程
Kratos框架HTTP与gRPC服务开发教程

本专题围绕Kratos框架双协议服务开发,涵盖HTTP路由与处理器编写、参数获取、gRPC服务实现与客户端调用、metadata上下文传递、encoding编解码注册、统一响应封装、超时控制与流式响应实现方法。

20

2026.10.10

Kratos框架Protobuf接口定义与代码生成合集
Kratos框架Protobuf接口定义与代码生成合集

本专题讲解Kratos框架接口定义体系,涵盖proto编写规范、proto add/client/server生成命令、http注解路由、validate校验、OpenAPI文档生成、跨服务proto复用与兼容性设计。

0

2026.10.10

C++虚函数怎么定义和调用
C++虚函数怎么定义和调用

C++虚函数是实现运行时多态的重要机制。本专题从virtual关键字的基本用法入手,介绍基类与派生类之间的函数重写、基类指针调用派生类方法,以及动态绑定的执行过程,帮助初学者掌握虚函数的核心语法。

20

2026.10.10

C++类与对象的封装方法教程
C++类与对象的封装方法教程

C++封装是面向对象编程的核心特性之一,通过类将数据与操作数据的函数组织在一起,并利用访问权限控制外部访问。本专题介绍类的定义、成员变量、成员函数以及public、private和protected的使用方法,帮助初学者掌握封装的基本原理。

0

2026.10.10

C++构造函数定义与调用方法
C++构造函数定义与调用方法

C++构造函数用于初始化类对象,是面向对象编程的重要基础。本专题从构造函数的定义、声明和调用入手,介绍默认构造函数、带参数构造函数、拷贝构造函数及成员初始化列表,帮助初学者掌握对象创建与初始化的基本方法。

20

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn