Windows、Mingw Qt 应用程序无法在已部署的计算机上运行

Posted

技术标签:

【中文标题】Windows、Mingw Qt 应用程序无法在已部署的计算机上运行【英文标题】:Windows, Mingw Qt Application Does Not Run On Deployed Computers 【发布时间】:2011-09-16 00:42:58 【问题描述】:

我已经用 Mingw 创建了一个 Qt 应用程序。将所需的 DLL 复制到目录后,应用程序在开发计算机上正常运行。但是,在外部计算机上部署时,应用程序根本无法运行。

更新: 另外,应用程序通过QtSql使用Sqlite3。

【问题讨论】:

用户看到了什么错误? 没有错误。窗户沙漏显示,然后什么也没有发生。我是此时的用户,尚未部署到生产环境中。 你试过在调试器下运行它吗? GDB 可能是 MinGW 编译程序的最佳选择,但如果问题出在系统 DLL 中,则可能需要使用 Windows SDK 中 Windows 调试工具包中的 cdb 之类的东西。您可以从 sourceforge.net/projects/mingw/files/MinGW/BaseSystem/GDB/… 获取 GDB,它需要从 sourceforge.net/projects/mingw/files/MinGW/expat/expat-2.0.1-1/… 获取 libexpat-1.dll 【参考方案1】:

很可能您仍然缺少一些 dll。

    在运行应用程序后检查 Windows 事件日志是否有任何错误。 (管理工具->事件查看器)。 尝试从命令提示符窗口启动应用程序。 试试Dependency Walker。

另一个想法是缺少一些配置文件或注册表设置。

仔细检查 Qt docs 以部署 Windows Qt 应用程序。

【讨论】:

谢谢,我都试过了。事件日志与应用程序无关,命令提示符也没有显示任何内容。感谢您的快速回复。 @Jason 如果您还没有这样做,对于命令提示符部分,您必须在 .pro 文件中使用 CONFIG+=console 重新编译您的应用程序,以便它实际使用控制台。 你是对的,先生!我有 QtSql dll,但是我缺少 SQLITE dll。更准确地说,它不在正确的位置。显然它需要位于名为 sqldrivers 的子目录中。请参阅此相关问题:***.com/questions/5151279/qsqlite-driver-not-loaded 谢谢!

以上是关于Windows、Mingw Qt 应用程序无法在已部署的计算机上运行的主要内容,如果未能解决你的问题,请参考以下文章

Webview 在 Windows 上的 mingw 中无法在 Qt Creator 中工作

为啥在Windows下开发 QT 要用到 MinGW? 他的作用是啥?

使用 MinGW 6.3.0 时无法完成 Qt 5.7.0 的静态构建

Windows 上的 Qt 5.1.0 使用 minGW 4.8 需要很长时间才能调试

Qt 5.3.1 应用程序错误:无法找到或加载 Qt 平台插件“windows”

qt调试无法开始 求助