我构建了一个 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 位版本上使用过依赖遍历器)。
我错过了一些步骤吗?