Qt Creator中运行闪退而exe可直接运行,大概率是工作目录、环境变量、平台插件路径不一致所致:IDE默认以构建目录为工作目录,导致QApplication找不到platforms/qwindows.dll等插件或资源文件。

直接双击生成的 exe 能跑,但在 Qt Creator 里点运行就闪退或报“程序异常结束”,大概率不是代码问题,而是运行环境没对上——IDE 启动时的工作目录、环境变量、平台插件路径和你手动双击时完全不同。
为什么Qt Creator里运行会崩溃,但exe能直接运行?
Qt Creator 默认用项目构建目录(如 build-project-Desktop_Qt_5_15_2_MinGW_64bit-Debug)作为工作目录启动程序,而你的资源文件(图片、配置、DLL)、插件(platforms/qwindows.dll)往往放在可执行文件所在目录(release/ 或 debug/)。一旦程序在错误路径下启动,QApplication 初始化时找不到平台插件或资源,就会静默崩溃。
- 检查“项目 → 运行 → 工作目录”是否设为
$(BuildDir)/debug或$(BuildDir)/release(即 exe 所在目录) - 确认“运行环境”里没有误删或覆盖
PATH,尤其不能清空 Qt 的bin目录路径 - 如果用了
QDir::current()加载资源,它返回的是工作目录,不是 exe 目录 —— 改用QCoreApplication::applicationDirPath()
“Could not find the Qt platform plugin 'xxx'”怎么修?
这个错误本质是 QT_QPA_PLATFORM 指向的插件不存在,或插件依赖的底层库(如 OpenGL ES、Wayland 库)缺失。Windows 上常见 qwindows.dll 找不到,嵌入式 Linux 上常是 eglfs 或 wayland 不匹配。
Qt Creator 18.0.2 Windows x86_64 历史版本安装包,适合需要旧版本 IDE、旧项目兼容、Qt/C++ 项目维护、构建套件配置和调试环境回退的用户使用。
- 先确认目标平台实际有哪些插件:在部署机上运行
ls /path/to/qt/plugins/platforms/ - Windows 下,确保
platforms文件夹和qwindows.dll在 exe 同级目录,或通过QT_QPA_PLATFORM_PLUGIN_PATH环境变量指定 - Linux 嵌入式设备(如 RK3568),别硬配
eglfs;用export QT_QPA_PLATFORM=wayland更稳妥,前提是系统已装libqt5waylandclient5等依赖 - Qt Creator 运行配置中,直接添加环境变量:
QT_QPA_PLATFORM=windows(Win)或QT_QPA_PLATFORM=wayland(Linux)
“Unknown module(s) in QT: webenginewidgets”这类模块报错怎么解?
这不是编译器问题,而是 Qt 安装本身缺组件,或者 Kit 选错了编译器。WebEngine 模块从 Qt 5.4 起才有,且官方只支持 MSVC 编译,MinGW 版本即使装了也链接失败。
- 运行
qmake --version确认 Qt 版本 ≥ 5.4;低于则必须升级 - 打开 Qt 安装目录下的
MaintenanceTool.exe,检查是否勾选了 “Qt WebEngine” 组件(注意:要对应当前 Kit 的编译器,比如 MSVC2019 对应的 WebEngine) - Qt Creator 左下角 Kit 必须选 MSVC,不能选 MinGW;否则
QT += webenginewidgets会被当成未知模块 - pro 文件里写
QT += webenginewidgets后,务必重新 qmake(右键项目 → “重新运行 qmake”)
真正麻烦的不是报错信息本身,而是 Qt Creator 把工作目录、环境变量、Kit 配置、插件路径这四层东西全揉在一起自动推导——只要其中一层没对齐,程序就崩得无声无息。建议每次新建项目后,先手动核对 Kit 和运行环境设置,比事后 debug 省半小时。

















