6

我的开发箱是 Windows 7 x64。我在我的盒子上构建了 32 位和 64 位版本的 Qt 4.7.4。当我将我的应用程序配置为使用 32 位版本的 Qt 时,它在 Qt Creator (ctrl-R) 中运行良好,但是当我尝试在 Windows 资源管理器中双击 exe(或从 cmd 提示符运行)时,我得到:

--------------------------
RenameTemplatePreviewFiles_Qt_win.exe - 应用程序错误
--------------------------
应用程序无法正确启动 (0xc000007b)。
单击确定关闭应用程序。
--------------------------
好的   
--------------------------

如果我将我的配置切换到 64 位 Qt 并构建它,我可以双击 exe 并且它运行良好。

我需要做什么才能运行用 32 位 Qt 编译的 exe?

4

4 回答 4

5

我有根据的猜测是您的应用程序根本找不到所需的 DLL。可以肯定的是,您可以在Dependency Walker中打开您的 exe,看看它是否找到了所有必要的 DLL。如果一开始似乎没有任何问题,那么使用 Dependency Walker 来分析应用程序。这可能会揭示一些在运行时加载的缺失依赖项。

如果这与您的 Qt DLL 相关,请确保您的 PATH 环境变量中有适当的条目,或者所需的 DLL 包含在您的 EXE 目录中(尽管后者可能不是开发机器上的最佳选择)。

于 2012-08-23T20:49:10.117 回答
1

我遇到了同样的问题。首先,我在我的 .exe 文件所在的发布文件夹中复制了所需的 .dll 文件。然后我复制了额外的 libstdc++-6.dll 文件。程序在此之后开始工作。

于 2019-05-24T10:50:53.510 回答
0

只需添加三个缺少的 dll 文件:

  • libwinpthread-1.dll
  • libstdc++-6.dll
  • libgcc_s_dw2-1.dll

到 appl.exe 的文件夹。对于我的系统,那将是目录C:\Users\H\Documents\build-AQtest01v4-Desktop_Qt_5_11_0_MSVC2017_64bit-Debug。复制这些库应该可以使您的应用程序正常工作。在我的系统上,这些 dll 可以在C:\Qt\Tools\mingw492_32\bin.

于 2018-04-14T15:04:04.260 回答
0

我确实遇到了同样的问题,并想分享我的解决方案。

当我尝试部署 32 位版本时,运行 windeployqt.exe 复制了 32 位可执行文件的错误文件,因为 PATH 设置为 64 位 bin 文件夹(D:\Qt\Qt5.14.2\5.14.2 \msvc2017_64\bin)。

当我将 PATH 设置为 32 位文件夹 (D:\Qt\Qt5.14.2\5.14.2\msvc2017\bin) 并再次运行 windeployqt.exe 时,复制了正确的文件以进行部署并且一切正常。

加里

于 2020-11-27T14:55:10.800 回答