2、Qt Creator集成开发环境:安装与配置、Kits管理、第一个嵌入式Qt程序
好,咱们正式开始动手了。上一章聊了嵌入式Qt的整体架构,这一章咱们把吃饭的家伙——Qt Creator——装好、配好,然后跑通第一个嵌入式程序。
说实话,我见过不少新手在安装配置这一步就卡住了。不是装错版本,就是Kit死活配不上。别急,跟着我的节奏来,保证你半小时内看到界面跑起来。
2.1 Qt Creator的安装与版本选择
先解决一个核心问题:到底该装哪个版本?
| 版本系列 | 适用场景 | 我的建议 |
|---|---|---|
| Qt 5.12 LTS | 工业产品、长期维护项目 | 最稳,我项目里用了三年没出过妖 |
| Qt 5.15 LTS | 需要较新特性但求稳定 | 折中选择,社区资源丰富 |
| Qt 6.x | 新项目、桌面为主 | 嵌入式支持还在完善,先观望 |
我个人习惯用 Qt 5.12.12 搭配 Qt Creator 4.14。为什么?这个组合在ARM板子上踩过的坑最少,交叉编译工具链的兼容性也最好。
qt-opensource-linux-x64-5.12.12.run,安装过程中记得勾选「Sources」和「Qt Charts」——我吃过亏,没装Sources后面调试符号都看不到。
2.2 安装步骤(Ubuntu 20.04为例)
步骤其实很简单,但有几个坑我得提前告诉你。
- 安装依赖库
sudo apt-get install build-essential libgl1-mesa-dev libfontconfig1-dev libfreetype6-dev libx11-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libx11-xcb-dev libxcb-glx0-dev - 运行安装包
chmod +x qt-opensource-linux-x64-5.12.12.run ./qt-opensource-linux-x64-5.12.12.run - 配置安装路径 —— 我建议装到
/opt/Qt5.12.12,别用默认的home目录,后面交叉编译时路径太长容易出问题。 - 选择组件 —— 嵌入式开发必选:
- Desktop gcc 64-bit
- Sources
- Qt Charts(画曲线图用)
- Qt Serial Port(串口通信)
2.3 Kits管理——最容易被忽视的关键环节
Kit是什么?说白了就是「编译器 + 设备类型 + Qt版本」的三件套。你配不好Kit,Qt Creator就不知道拿什么工具去编译你的代码。
打开Qt Creator,进入 Tools → Options → Kits,你会看到这个界面:
2.3.1 配置交叉编译Kit
嵌入式开发的核心就是交叉编译。你在PC上写代码,编译出ARM架构的二进制,然后丢到板子上跑。
配置步骤:
- 添加编译器:点击「Compilers」→「Add」→「GCC」,选择你的交叉编译器路径,比如:
/usr/bin/arm-linux-gnueabihf-g++ - 添加Qt版本:点击「Qt Versions」→「Add」,定位到交叉编译版的qmake:
/opt/Qt5.12.12/5.12.12/gcc_arm/bin/qmake - 新建Kit:点击「Kits」→「Add」,把上面两个关联起来,设备类型选「Generic Linux Device」。
2.4 第一个嵌入式Qt程序
Kit配好了,咱们来写个最简单的程序验证一下。别搞复杂,就一个窗口,显示「Hello 嵌入式Qt」。
2.4.1 创建项目
- 点击「New Project」→「Application」→「Qt Widgets Application」
- 项目名称:
HelloEmbedded,路径别带中文和空格 - 构建系统选 qmake(cmake在嵌入式上坑多)
- Kit选择刚才配好的交叉编译Kit
2.4.2 编写代码
Qt Creator自动生成了main.cpp,咱们改一下:
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel label("Hello 嵌入式Qt!");
label.setAlignment(Qt::AlignCenter);
label.setStyleSheet("font-size: 32px; color: #2c3e50;");
label.resize(400, 300);
label.show();
return app.exec();
}
代码很简单,对吧?但这里有个细节——嵌入式板子通常没有桌面环境,所以你不能依赖窗口管理器。Qt程序需要自己处理显示。
2.4.3 编译与部署
点击左下角的「Build」按钮(小锤子图标),选择交叉编译Kit。编译成功后,你会看到:
HelloEmbedded 可执行文件(约 1.2MB)
怎么部署到板子上?我一般用scp:
scp HelloEmbedded root@192.168.1.100:/root/
然后SSH到板子上运行:
ssh root@192.168.1.100
export DISPLAY=:0
./HelloEmbedded
export QT_QPA_PLATFORM=linuxfb 或者 eglfs。我习惯用 linuxfb,兼容性最好。
2.5 常见问题与避坑指南
| 问题现象 | 原因 | 解决办法 |
|---|---|---|
| 编译报错:找不到GL/gl.h | 缺少OpenGL开发库 | sudo apt install libgl1-mesa-dev |
| 板子上运行报错:libQt5Core.so.5 not found | Qt库没部署到板子 | 把交叉编译的lib目录整个拷贝到板子的/usr/lib |
| 界面显示为黑屏 | 没有设置显示平台插件 | export QT_QPA_PLATFORM=linuxfb |
| 触摸没反应 | tslib未配置或未安装 | 交叉编译tslib并设置TSLIB_*环境变量 |
2.6 小结
这一章咱们把Qt Creator装好了,Kit配通了,第一个程序也跑起来了。你想想看,从零到看到「Hello 嵌入式Qt」出现在板子屏幕上,其实就三步:装软件、配Kit、写代码。
嗯,这里我要强调一句:Kit配置是嵌入式Qt开发的门槛。你后面写再多代码,如果Kit没配对,一切都是白搭。我建议你把配好的Kit截图保存,或者写个文档记录路径,下次换电脑或者换板子时直接复用。