运行手动执行exe时出错

Run time error on executing the exe manually

我有一个 Qt 应用程序,当我从 Qt Creator 执行它时它运行良好。但是,在 运行 上,通过手动单击生成的 exe,出现以下错误:

我会理解它是否会询问缺少的 DDL(然后我可以将其放在同一文件夹中)。但是我应该如何处理这个问题(一般来说)?

P.S。它没有在我的源代码中提供任何我可以尝试测试此断言的行号。我也尝试使用发布模式,但同样的错误。

我们不知道您的代码有什么问题;您需要使用调试器来找出答案。我认为您下载的预构建 Qt 库带有调试符号,但如果没有,您始终可以自己构建 Qt 以使用 -force-debug-info 配置选项获取它们。

您还可以使用 DebugView 查看已部署应用程序的调试输出。

但是,一般来说,您应该使用 Qt 附带的 windeployqt 工具。

Qt for Windows - Deployment 页面包含有关将 Qt 应用程序部署到 Windows 机器的更多信息,但是 windeployqt 应该可以满足您的所有需求。

我的 qml 文件没有正确部署,因此出现这个错误(这个断言可能在存储主 qml 文件名的变量上,即它不应该是一个空字符串,如果缺少 main.qml, 它是)。将 qml 文件放在正确的路径可以解决问题。

此外,正如@mitch 在他的回答中指出的那样,使用 windeployqt 找出依赖关系。虽然,我也意识到它没有涵盖所有依赖项(例如 MSVC 运行 次,有时还有其他编译器相关文件)。在这种情况下 运行 依赖遍历器并手动将丢失的文件与 exe 一起放置。