qt creator运行前需确保kit可用、项目生成正确且平台环境匹配,否则易出现构建失败或“libstdc++.so.6: version `cxxabi_1.3.9' not found”等错误;须检查kit中compiler、qt version、debugger三项配置无误,并验证目标系统libstdc++版本兼容。

Qt Creator 安装配置完成后,运行程序不是“点开就跑”,而是必须先确保构建套件(Kit)可用、项目已正确生成、且目标平台环境匹配。否则会卡在构建失败、黑窗口、或运行时报 libstdc++.so.6: version `CXXABI_1.3.9' not found 这类错误。
点击绿色三角按钮前,先确认 Kit 是否正常
Qt Creator 左下角显示的 Kit(如 Desktop Qt 5.9.1 MinGW 64bit 或 armv7 Qt 5.9.1)必须是“勾选状态”且右侧有绿色对勾。如果显示黄色感叹号或灰色文字:
- 打开 工具 → 选项 → 构建和运行 → Kits,检查对应 Kit 的 “Compiler”、“Qt version”、“Debugger” 三项是否都已选中且无报错
- 若 Qt 版本未识别,需手动添加:在 Qt 版本 标签页点击
Add,指向qmake路径(如C:\Qt\5.9.1\mingw53_64\bin\qmake.exe或/opt/qt5.9.1-arm/bin/qmake) - 交叉编译场景(如部署到 LicheePi)务必使用与目标板一致的 Qt 套件,不能混用 x86 和 armv7 的 Kit
构建失败常见原因和快速验证法
点击 ▶ 后底部出现红色错误,多数不是代码问题,而是环境链路断了:
-
Project ERROR: Unknown module(s) in QT: widgets→ 检查 .pro 文件里是否漏写了QT += widgets;Qt 6 默认不自动包含 widgets,必须显式声明 -
cannot find -lGL(Linux 桌面)→ 缺少 OpenGL 开发库,执行sudo apt install libgl1-mesa-dev - Windows 下提示
cannot open input file "qtmain.lib"→ Kit 使用了 Desktop Qt 但项目模板选了 “Console Application”,应改用 “Qt Widgets Application” 模板重建 - 构建成功但运行闪退 → 打开 项目 → 构建设置 → 构建步骤 → 构建后步骤,添加命令:
windeployqt --no-translations --no-compiler-runtime "$(OUTDIR)\$(TARGET).exe"(Windows)或检查 Linux/ARM 是否缺字体、触摸库
部署到嵌入式设备时必做的三件事
本地能跑 ≠ 板子能跑。ARM 板上运行 Qt 程序,光拷二进制文件远远不够:
- 确认目标系统
libstdc++.so.6版本兼容:运行strings /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 | grep CXXABI,若最高只到CXXABI_1.3.8,而你的程序链接的是CXXABI_1.3.9(常见于 Qt 5.9.1 + GCC 6+ 编译),就得替换目标板上的libstdc++.so.6.0.22 - 字体缺失导致界面空白:把
simsun.ttf或其他 TTF 文件放进目标板的/opt/qt5.9.1-arm/lib/fonts/目录(路径需与你 Qt 安装路径一致) - 触摸不响应:必须在板子上运行
ts_calibrate和ts_test,校准后 Qt 才能读取/dev/input/event*设备
QPushButton,而是 qmake 找不到 Qt5Core、libstdc++ 版本错位、或板子上连基础字体都没放对位置。每一步都要验证输出,而不是盲目点运行。











