我有一个Qt应用程序,当我从Qt Creator执行它时运行正常。但是,在通过手动单击生成的exe运行它时,我收到以下错误:
我会理解它是否会要求丢失DDL(我可以放在同一个文件夹中)。但是我应该如何处理这个问题(一般情况下)?
P.S。它没有在我的源代码中给出任何行号,我可以尝试测试这个断言。我尝试使用发布模式,但同样的错误。
答案 0 :(得分:1)
我们不知道你的代码有什么问题;你需要使用调试器来找出它。我认为您下载的预构建的Qt库带有调试符号,但如果它们没有,您可以自己构建Qt以使用-force-debug-info
配置选项来获取它们。
您还可以使用DebugView查看已部署应用程序的调试输出。
但是,一般情况下,您应该使用Qt。
中包含的windeployqt
工具
Qt for Windows - Deployment页面提供了有关将Qt应用程序部署到Windows计算机的更多信息,但windeployqt
应该可以执行您需要的所有操作。
答案 1 :(得分:0)
我的qml文件未正确部署,因此出现此错误(此断言可能是存储主qml文件名的变量,即它不应该是空字符串,如果缺少main.qml,则为)。将qml文件放在正确的路径上解决了这个问题。
另外,正如@mitch在他的回答中指出的那样,使用windeployqt找出依赖关系。虽然,我也意识到它并未涵盖所有依赖项(例如MSVC运行时和其他编译器相关文件)。在这种情况下,运行依赖性walker并将缺少的文件与exe一起放置。