Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
win 7 x64 win'上的32位Qt应用程序;t运行,但从Qt Creator运行良好?_Qt_Qt4_32bit 64bit_Qt4.7 - Fatal编程技术网

win 7 x64 win'上的32位Qt应用程序;t运行,但从Qt Creator运行良好?

win 7 x64 win'上的32位Qt应用程序;t运行,但从Qt Creator运行良好?,qt,qt4,32bit-64bit,qt4.7,Qt,Qt4,32bit 64bit,Qt4.7,我的开发盒是Windows7x64。我有32位和64位版本的Qt4.7.4构建在我的机器上。当我将我的应用程序配置为使用32位版本的Qt时,它在Qt Creator(ctrl-R)中运行良好,但当我尝试在Windows资源管理器中双击exe(或从cmd提示符运行)时,我得到: --------------------------- 重命名模板预览文件\u Qt\u win.exe-应用程序错误 --------------------------- 应用程序无法正确启动(0xc000007b)。

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

--------------------------- 重命名模板预览文件\u Qt\u win.exe-应用程序错误 --------------------------- 应用程序无法正确启动(0xc000007b)。 单击“确定”关闭应用程序。 --------------------------- 好啊 --------------------------- 如果我将配置切换到64位Qt并构建它,我可以双击exe,它运行正常


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

我有点常识的猜测是,您的应用程序根本找不到所需的DLL。当然,您可以在中打开exe以查看它是否找到所有必需的DLL。如果一开始似乎没有什么不对劲,那么使用Dependency Walker分析应用程序。这可能会显示一些在运行时加载的缺失依赖项


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

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

  • libwinpthread-1.dll
  • libstdc++-6.dll
  • libgcc_s_dw2-1.dll
转到appl.exe的文件夹。 对于我的系统,这将进入目录
C:\Users\H\Documents\build-AQtest01v4-Desktop\u Qt\u 5\u 11\u 0\u MSVC2017\u 64bit-Debug

复制这些库应该可以使应用程序正常工作。在我的系统中,这些DLL可以在
C:\Qt\Tools\mingw492\u 32\bin
中找到,我也遇到过同样的问题。首先,我在我的.exe文件所在的发行版文件夹中复制了所需的.dll文件。然后我复制了额外的libstdc++-6.dll文件。程序在此之后开始工作

我确实遇到了同样的问题,希望与大家分享我的解决方案

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

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


Gary

您是针对Qt动态链接还是静态链接?我不确定-如何判断?如果您使用默认配置,那么您是针对Qt动态链接(请检查链接器命令以确保)。如果链接是动态的,那么应用程序将在应用程序附近搜索Qt dll,然后在路径中搜索。如果链接是静态的,则Qt将嵌入到应用程序中。在您的情况下,我猜它是动态的,32位Qt dll不在路径中。尝试复制应用程序文件夹中的QtCore4.dll,并参考Bart答案查找所有Qt依赖项。是的,只有x64版本的Qt在我的路径中。但是,如果我查看QtCreator-Projects、BuildSettings和BuildEnvironment,那么x86版本的Qt就在我的路径上了。它设置为使用系统环境,但显然它会自动将x86版本的Qt添加到路径中。@DavidBurson是的,很可能就是这样。很高兴看到问题解决了。你救了我很多! --------------------------- RenameTemplatePreviewFiles_Qt_win.exe - Application Error --------------------------- The application was unable to start correctly (0xc000007b). Click OK to close the application. --------------------------- OK ---------------------------