2012-08-23 152 views
4

我的开发框是Windows 7 x64。我的机器上装有32位和64位版本的Qt 4.7.4。当我将应用程序配置为使用Qt的32位版本时,它在Qt Creator(ctrl-R)中运行良好,但是当我尝试在Windows资源管理器中双击exe文件(或从cmd提示符运行)时, :win 7 x64上的32位Qt应用程序无法运行,但可以在Qt Creator中正常运行?

 
--------------------------- 
RenameTemplatePreviewFiles_Qt_win.exe - Application Error 
--------------------------- 
The application was unable to start correctly (0xc000007b). 
Click OK to close the application. 
--------------------------- 
OK 
--------------------------- 

如果我将配置切换到64位Qt并构建它,我可以双击该exe文件并运行正常。

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

+0

您是否正在动态或静态链接Qt? –

+0

我不确定 - 我怎么知道? –

+1

如果您使用默认配置,以便您动态链接Qt(请确认链接器命令)。如果链接是动态的,那么应用程序将在PATH中搜索应用程序附近的Qt dll。如果链接是静态的,Qt被嵌入到你的应用程序中。在你的情况下,我想它是动态的,并且32位Qt dll不存在于PATH中。尝试将QtCore4.dll复制到您的应用程序文件夹中,然后参考Bart答案查找所有Qt依赖关系 –

回答

5

我有点受教育的猜测是你的应用程序可能根本找不到所需的DLL。可以肯定的是,你可以在Dependency Walker中打开你的exe,看它是否能找到所有必要的DLL。如果一开始没有错误,那么使用Dependency Walker来分析应用程序。这可能会揭示一些在运行时加载的缺失依赖关系。

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

+0

yup,只有Qt的x64版本位于我的路径中。不过,如果我查看Qt Creator - 项目,构建设置,构建环境,Qt的x86版本就在我的路径中。它被设置为使用系统环境,但显然它会自动将x86版本的Qt添加到路径中。 –

+0

@DavidBurson是的,那很有可能。很高兴看到解决。 – Bart

相关问题