qmake能运行、gcc/g++被识别、kit自动匹配三者同时成立才算qt creator环境配好;否则易出现编译报错、头文件缺失或“could not find qt platform plugin”等运行时错误。

qmake 能跑起来、gcc 和 g++ 被识别、Kit 能自动匹配——这三件事都成立,才算真正配好 Qt Creator 环境。否则编译报错、找不到头文件、运行时提示“Could not find Qt platform plugin”,大概率是环境链断在某个环节。
确认系统级 Qt 和编译器已安装并可用
别急着打开 Qt Creator,先在终端验证基础工具链是否就位:
-
qmake --version必须输出版本号(如Qt 5.12.9),否则 Qt 库或qmake本身没装对; -
gcc --version和g++ --version需返回有效信息,Ubuntu/Debian 用户推荐用sudo apt install build-essential一次性补全; - 如果用的是源码编译的 Qt(比如交叉编译场景),
qmake路径可能不在$PATH中,得手动加进~/.bashrc:比如export PATH=/home/user/qt-arm/bin:$PATH,然后source ~/.bashrc; - 执行
which qmake和which gcc,确保路径不为空且指向你预期的位置。
Qt Creator 里手动注册编译器和 qmake
Qt Creator 不会自动扫描所有 gcc 或 qmake,必须显式添加:
- 打开 工具 → 选项 → 构建与运行 → 编译器,点击“添加” → “GCC” → 填写
gcc和g++的绝对路径(如/usr/bin/gcc); - 同页切换到“Qt 版本”,点击“添加”,选择你本地的
qmake可执行文件(不是qmake-qt5或软链接,而是真实路径,如/usr/lib/x86_64-linux-gnu/qt5/bin/qmake); - 关键细节:Qt 版本名会自动生成(如 “Qt 5.12.9 (GCC 11.4.0)”),但若显示 “Unknown” 或空白,说明
qmake返回了异常输出(常见于权限不足或缺失libstdc++.so); - 不要跳过“调试器”配置——哪怕只做 Release 构建,也建议添加系统自带的
gdb(路径通常是/usr/bin/gdb),否则 Kit 创建时可能失败。
Kit 配置必须严格匹配 Qt 版本 + 编译器 + 调试器
Kit 是 Qt Creator 的“构建上下文”,三个组件缺一不可,且必须兼容:
- 进入 构建与运行 → Kits,点击“添加”,名称可填 “Desktop Qt 5.12.9 GCC”;
- “Qt 版本”下拉框选你刚注册的那个;
- “编译器”选对应的 GCC 和 G++ 条目(注意:C 和 C++ 编译器要成对,不能混用不同版本);
- “调试器”选你配置好的
gdb; - 最容易被忽略的一点:“设备类型”必须选 “Desktop”(哪怕你目标是嵌入式,只要当前在 PC 上开发,这里就不能选 “Generic Linux Device”);
- 保存后,新建项目时若 Kit 显示黄色感叹号,鼠标悬停会提示具体缺失项(比如 “No debugger set” 或 “Qt version not found”)。
交叉编译环境额外注意 CROSS_COMPILE 和 STAGING_DIR
如果你的目标是 ARM/Linux(如全志 V853、i.MX6),光有桌面 Kit 不够,Kit 还得绑定交叉工具链:
- 先确保终端里能直接运行
arm-openwrt-linux-gcc -v,否则 Qt Creator 也无法调用; - 在“编译器”页添加新 GCC 时,“ABI”务必选
arm-linux-generic-elf-32bit(或对应你的芯片架构),否则 Kit 无法关联; - Qt 版本注册时,
qmake必须是你为 ARM 编译出的那个(比如~/qt-arm/bin/qmake),它内部已硬编码了CROSS_COMPILE=arm-openwrt-linux-; - 环境变量
STAGING_DIR会影响qmake查找 sysroot,但它**不会**被 Qt Creator 自动继承——必须在 Kit 的 “环境” 栏里手动添加,否则#include <sys></sys>会报错; - 验证方式:新建一个空项目,右键“构建目录” → “在终端中打开”,执行
qmake -query,检查QT_SYSROOT是否指向你期望的STAGING_DIR路径。
libQt5Core.so.5: cannot open shared object file,问题往往出在目标板上缺少对应 Qt 库,或 LD_LIBRARY_PATH 没设对,而不是 Qt Creator 配置本身。











