win 7 x64 win'上的32位Qt应用程序;t运行,但从Qt Creator运行良好?
我的开发盒是Windows7x64。我有32位和64位版本的Qt4.7.4构建在我的机器上。当我将我的应用程序配置为使用32位版本的Qt时,它在Qt Creator(ctrl-R)中运行良好,但当我尝试在Windows资源管理器中双击exe(或从cmd提示符运行)时,我得到: --------------------------- 重命名模板预览文件\u Qt\u win.exe-应用程序错误 --------------------------- 应用程序无法正确启动(0xc000007b)。 单击“确定”关闭应用程序。 --------------------------- 好啊 --------------------------- 如果我将配置切换到64位Qt并构建它,我可以双击exe,它运行正常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)。
要运行使用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
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 ---------------------------