C++ 如何运行依赖于.dll文件的Qt可执行文件?

C++ 如何运行依赖于.dll文件的Qt可执行文件?,c++,qt,dll,exe,C++,Qt,Dll,Exe,所以我已经完成了我的Qt应用程序,我需要使用Squish测试应用程序实现测试(第一次使用)。显然,我需要一个工作的exe文件,但我无法让可执行文件运行。我将所有.dll文件添加到同一个目录中,结果得到错误: 在此之前,我收到了一些错误,说XXXX.dll丢失了,但正如我所说的,我已经将它们添加到了目录中。我尝试过使用项目的调试版本和发布版本,但结果相同。我也尝试过构建一个独立的可执行文件,但它也有自己的问题(一次只做一件事)。该程序在Qt Creator和VS2013中运行良好…只是不能单独运行

所以我已经完成了我的Qt应用程序,我需要使用Squish测试应用程序实现测试(第一次使用)。显然,我需要一个工作的exe文件,但我无法让可执行文件运行。我将所有.dll文件添加到同一个目录中,结果得到错误:

在此之前,我收到了一些错误,说
XXXX.dll丢失了
,但正如我所说的,我已经将它们添加到了目录中。我尝试过使用项目的调试版本和发布版本,但结果相同。我也尝试过构建一个独立的可执行文件,但它也有自己的问题(一次只做一件事)。该程序在Qt Creator和VS2013中运行良好…只是不能单独运行

有什么解决办法吗

编辑: 从依赖行者。。。

如果独立运行应用程序(即不是从Qt Creator运行),则还需要Qt库DLL。您需要哪一个取决于您使用的组件


也是在Windows下查找缺少的DLL的有用工具。

如果独立运行应用程序(即不是从Qt Creator运行),则还需要Qt库DLL。您需要哪一个取决于您使用的组件


也是查找Windows下缺少的DLL的有用工具。

0x7B是无效图像格式的错误代码

您尝试在32位系统上运行64位应用程序,或者链接到64位库(即复制了错误的DLL)


或者您的二进制文件已损坏。

0x7B是无效图像格式的错误代码

您尝试在32位系统上运行64位应用程序,或者链接到64位库(即复制了错误的DLL)


或者您的二进制文件已经损坏。

至于我,似乎缺少了一些东西。windows上的Qt有脚本windeployqt,它将提供所有需要的依赖项。请参阅有关使用此功能的文档。在Windows上,您将能够使用加载的qt环境变量运行cmd(在Windows 7上,请参阅Windows应用程序菜单下的-如果安装了qt,该命令将可用)。正如西蒙所说,依赖性步行器是一个很好的工具。

至于我,似乎缺少了一些东西。windows上的Qt有脚本windeployqt,它将提供所有需要的依赖项。请参阅有关使用此功能的文档。在Windows上,您将能够使用加载的qt环境变量运行cmd(在Windows 7上,请参阅Windows应用程序菜单下的-如果安装了qt,该命令将可用)。正如Simon所说,Dependency Walker是一个很好的工具。

我尝试过的一件事是,在bin文件夹中添加每个Qt库DLL,这有点像核一样。同样的问题。但我会尝试Dependency Walker,看看我是否遗漏了什么。我尝试过的一件事是,通过在bin文件夹中添加每个Qt库DLL,我有点像核一样。同样的问题。但我会试试Dependency Walker看看我是否遗漏了什么。我在64位系统上运行。我还尝试重新构建我的项目,并在另一台64位计算机上运行,通过单独下载重新安装了Qt。问题仍然存在。请使用dependency walker运行可执行文件,以查看哪个DLL的格式错误。好的,第一次使用dependency walker,但如果我读取正确,则会显示CPU字段中的ICUIN53.DLL为x86。它还有大约8个其他模块在打开时出错。在黑暗中开枪…这就是问题所在?我在上面的更新中发布了一张图片。@LazyBear,这正是我希望看到的。您的64位可执行文件正在加载32位
ICUIN52.DLL
。它说找不到
WINRT…dll
等的其他错误通常都在那里,不值得担心。@sjdowling ICUIN53.dll是它明确说需要的dll之一,我补充说。但它与所有x64 DLL文件位于同一个bin文件夹中。如果我不能在64位安装的Qt中获得x64版本,我在哪里可以获得它?我在64位系统上运行。我还尝试重新构建我的项目,并在另一台64位计算机上运行,通过单独下载重新安装了Qt。问题仍然存在。请使用dependency walker运行可执行文件,以查看哪个DLL的格式错误。好的,第一次使用dependency walker,但如果我读取正确,则会显示CPU字段中的ICUIN53.DLL为x86。它还有大约8个其他模块在打开时出错。在黑暗中开枪…这就是问题所在?我在上面的更新中发布了一张图片。@LazyBear,这正是我希望看到的。您的64位可执行文件正在加载32位
ICUIN52.DLL
。它说找不到
WINRT…dll
等的其他错误通常都在那里,不值得担心。@sjdowling ICUIN53.dll是它明确说需要的dll之一,我补充说。但它与所有x64 DLL文件位于同一个bin文件夹中。如果我不能在64位的Qt安装中获得x64版本,我在哪里可以获得它?