2012-08-23 116 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

相關問題