我的Qt5可执行文件在Visual Studio 2010之外无法运行

3

我用Qt5和visual Studio 2010完成了一个大项目,在visual studio内使用运行按钮一切顺利。

但我的目标当然是将其发布给其他人,而不需要使用visual studio。

我的问题是:我无法在visual studio之外运行.exe文件。起初要求我安装多个dll文件,我在Qt5 bin文件夹中找到了它们。

但现在我已经摆脱了这些消息,但当我想打开我的exe文件时,什么也没有发生。

甚至在Windows任务管理器中也找不到我的exe文件。

这里有人知道这个问题的答案吗?


你应当使用静态链接方式连接Qt5库。如果不知道如何在VC环境下操作,请参考相关文档。 - UldisK
1
不,除非你的Qt是静态构建的,否则你无法使用静态链接。此外还存在一些许可问题。 - dtech
2个回答

2

在运行时加载的dll文件,如果不存在,不会给您任何错误、警告或其他信息(对依赖项检查器也完全透明)。其中一个例子是 platforms\qwindows.dll - 请注意,它必须位于可执行文件的 platforms\ 子文件夹中。您还可能缺少 libEGL.dlllibGLESv2.dll


是的,我认为你是对的!我已经尝试将我的exe放在qt bin文件夹中,它可以工作!但是我找不到你所说的子文件夹。 我正在使用Qt5。 你知道我怎么能知道我的程序正在尝试加载哪些dll吗?谢谢你的回答!问题现在离解决不远了! - Maxx
缺失的是libEGL.dll。非常感谢您的帮助! - Maxx
1
在运行时加载的三个dll是平台插件、ligEGL和libGLESv2 - 平台插件最初位于qtbase/plugins/platforms中。您可以从那里复制它并放入应用程序文件夹中,只需记得将其与平台文件夹本身一起放置即可。其余的dll需要与exe在同一路径下,只有平台插件需要一个单独的文件夹。 - dtech

0

在这种情况下,Dependency Walker并不是很有用,因为它显示了一些非常奇怪的缺失dll文件:API-MS-WIN-CORE-PRIVATEPROFILE-L1-1-1.DLL等。

您可以使用Qt5.x cmd提示符(5.x是您正在使用的版本),并从构建目录运行windeployqt.exe。它将自动查找并复制所有必要的dll文件到您的输出目录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接