【发布时间】:2013-11-13 20:20:47
【问题描述】:
我构建了一个 Qt 应用程序,我想将它分发给几个人。 在安装了 QtCreator 的计算机上,我可以通过将一堆 Qt dll(我插入了它抱怨的那些)与可执行文件放在同一个文件夹中来运行它。但是,如果我卸载 Qt 或在没有 Qt 的计算机上尝试它,可执行文件不会执行任何操作。没有错误,只是运行时没有窗口或进程。
这是我尝试过的:
- 将 qt 文件夹中的每个 dll 放入可执行文件中。没有效果。
- 使用依赖walker 运行它。我不完全确定我是否正确使用了它,但是在卸载 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 redist 2010 和 2012。 它是 Qt 5.1.0 MSCV2012-32bit。而且我在 64 位版本上也有同样的问题(虽然我没有在 64 位版本上使用过依赖walker)。
我是否缺少某些步骤?
【问题讨论】: