我需要什么dll来分发我的Qt应用程序

What dlls do i need to distribute my Qt application?

本文关键字:我的 Qt 应用程序 什么 dll      更新时间:2023-10-16

我构建了一个Qt应用程序,我想分发给几个人。在安装了QtCreator的计算机上,我可以通过将一堆Qt dll(我插入它抱怨的那些)放在与可执行文件相同的文件夹中来运行它。但是,如果我卸载Qt或在没有Qt的计算机上尝试它,可执行文件将不执行任何操作。没有错误,只是运行它时没有窗口或进程。

这是我尝试过的:

- 将Qt文件夹中的每个DLL与可执行文件放在一起。没有效果。

- 使用依赖沃克运行它。我不完全确定我是否正确使用它,但是,在卸载 Qt 和带有可执行文件的必要 dll 的情况下,它不会给我任何丢失或无效的模块。分析后,记录器中只有几条红线,例如:

GetProcAddress(0x75AC0000 [KERNEL32.DLL], "SetDefaultDllDirectories") called from "MSVCR110.DLL" at address 0x6AC0FD4F and returned NULL. Error: The specified procedure could not be found (127).

GetProcAddress(0x75AC0000 [KERNEL32.DLL], "GetCurrentPackageId") called from "MSVCR110.DLL" at address 0x6AC0FDFA and returned NULL. Error: The specified procedure could not be found (127).

我能说出与qt无关的内容。

我正在具有 32 位 Windows 7 的虚拟机(尝试模拟非开发机器)上进行测试。安装了 MSVC 修订版 2010 和 2012。它是Qt 5.1.0 MSCV2012-32位。我在 64 位版本中遇到了同样的问题(不过我没有在 64 位版本中使用依赖 walker)。

我缺少一些步骤吗?

我发现您需要添加一个子目录,其中包含在安装文件夹的插件子目录中找到的一些插件 dll(您可以在其中找到包含和 bin 文件夹)

特别是 GUI 需要 platforms 子目录以及其中的qminimale.dllwindows.dll

编辑:要清楚的是,将子目录平台添加到带有exe的目录中,并向其添加qminimale.dllwindows.dll