为什么我的QT应用程序不工作?
我在Windows7 64位上使用QtCreator(使用MSVC2010)构建了一个Qt5应用程序。 该应用程序在我的计算机上运行良好,但在其他计算机上无法运行 我将Dependency Walker中显示为缺失的所有.dll复制到程序文件夹中,没有错误,但应用程序无法运行 我已经在WindowsXP和Windows7 64位和32位上进行了测试为什么我的QT应用程序不工作?,qt,executable,qt5,Qt,Executable,Qt5,我在Windows7 64位上使用QtCreator(使用MSVC2010)构建了一个Qt5应用程序。 该应用程序在我的计算机上运行良好,但在其他计算机上无法运行 我将Dependency Walker中显示为缺失的所有.dll复制到程序文件夹中,没有错误,但应用程序无法运行 我已经在WindowsXP和Windows7 64位和32位上进行了测试 我能做些什么来找出问题所在 更新:我安装了Qt4.8.4(VS2008)和MSVC2008Express,并编译了它,它在其他计算机上运行,使用了Q
我能做些什么来找出问题所在 更新:我安装了Qt4.8.4(VS2008)和MSVC2008Express,并编译了它,它在其他计算机上运行,使用了Qt4的.dll。
也许有人知道Qt5有什么问题…我也经历过同样的问题,从中了解到MinGW GCC 4.7与Qt 5.0及以上版本不兼容。我采用了与您相同的方法,并切换到Qt Creator 4.8,这很有效。我遇到了相同的问题-我添加了Dependency Walker报告的所有DLL,但我的程序在运行时立即退出,没有错误消息 我在程序目录中添加了
libEGL.dll
,现在它运行正常
我猜想,
libEGL.dll
是由另一个dll动态加载的-可能是libGLESv2.dll
,因为在所有已知的依赖项中,它具有最相似的名称(!)-并且依赖项Walker无法检测到动态加载。我也有同样的问题
您需要在可执行目录中包含包含qwindows.dll和qminimal.dll的“平台”目录。您可以在“plugins”文件夹下找到该目录
如果不添加此项,应用程序将显示为加载,然后退出,返回代码为0。Dependency walker无法帮助您,因为DLL是延迟加载的。我也遇到了同样的问题,并尝试使用两个DLL缺少消息和Dependency walker,但它对我没有帮助,或者我不知道我是否正确使用了它。下面的方法帮助我解决了(对于给定场景)它。这种方法在某些最小情况下有效 场景
在复制所有DLL时,当获取文件已存在消息时,根据系统决定以不同的名称保留这两个文件。如果应用程序无法运行,那么我们可以尝试使用这些重命名的文件。我认为它必须是某个DLL,您需要将其与可执行文件放在同一目录中,或者甚至可能放在路径中的目录中。无论哪种方式,我也在使用Qt5,如果我不将这些文件放在与exe文件相同的目录中,我会遇到与您相同的问题:
- vcruntime140[d].dll(MSVC库)
- ucrtbase[d].dll(另一个MSVC库--我正在使用MSVC/Visual C++)
- Qt5Widgets[d].dll(qt5库)
- Qt5Svg[d].dll(另一个qt5库)
- Qt5PrintSupport[d].dll(另一个Qt 5库)
- Qt5Gui[d].dll(您猜对了)
- Qt5Core[d].dll(是的)
- msvcp150[d].dll(我相信另一个Microsoft可再发行)
我在每个lib的末尾添加了一个
[d]
,因为对于调试版本,它们在末尾有一个d
,但是对于发布版本,它们没有。该部件在您的机器上可能相同,也可能不同。我相信这是一个或一组设置。尝试从命令提示符下运行可执行文件,以便读取错误消息,并将其添加到问题中@给我空行的反地球。没有错误消息…如果您的应用程序处于调试模式,则它不应在其他计算机上工作。即使有必要的DLL。如果是,发布variant@borisbn我的应用程序处于发布模式。。。什么都没有。确保你也复制了必要的插件,也许你有这个问题:为我工作!非常感谢你!!!我也有同样的问题。对我来说,没有必要包括“平台”文件夹和添加mingwm10.dll。我刚刚添加了所有的DLL文件,当我点击我的.exe文件时,错误消息一直给我,然后最后一步是添加libEGL.DLL,然后它就工作了!