2013-08-20 22 views
2

我在Qt 5.1/C++中编写了一个非常简单的应用程序。我把它写在Windows 7 64位上。我把QtCreator编译的* .exe文件粘贴到一个新创建的文件夹中,并在那里添加了一些* .dlls。Qt 5.1应用程序不能在QtCreator之外的Windows 8上运行,运行时错误

所以,我的文件夹的内容是这样的:

myapp.exe 
icudt51.dll 
icuin51.dll 
icuuc51.dll 
libgcc_s_dw2-1.dll 
libstdc++-6.dll 
libwinpthread-1.dll 
Qt5Core.dll 
Qt5Gui.dll 
Qt5Widgets.dll 

,这一切的作品在我的电脑上。不过,我将它发送给我的朋友,以测试它在他WINDWS 8 64位,他得到了这样的错误:

enter image description here

否则我应该怎么做才能使人们有可能,我在Windows 8的朋友可以运行我的应用程序?

在我的电脑dependecy沃克说,我需要这些dll:

enter image description here

不幸的是,仍然不起作用,在Windows XP过于:

enter image description here enter image description here

好,终于工作了!

enter image description here

qwindows.dll需要在目录中称为平台。

+0

你检查你的应用程序是否加载正确的dll的o在你的朋友的机器上的版本?我的应用程序加载了system32安装的dll,而不是我提供的这个错误。非常讨厌,很难调试。 – arne

+0

@arne:我怎么检查它? – yak

+0

我认为这是这一个:http://technet.microsoft.com/de-de/sysinternals/bb896653.aspx – arne

回答

2

创建文件夹<your-app-dir>/platforms并复制到文件qwindows.dll,qminimal.dll,也可能还有libEGL.dll。

查看文档在这里:

另外:

+0

libEGL.dll在哪里?我从来没有发现:\ – chwi

+0

根据上面第一个链接中的文档:'如果您使用的是ANGLE(默认),那么您还需要从Qt的'lib'目录中包含libEGL.dll和libGLESv2.dll以及来自DirectX的HLSL编译器。 HLSL编译器库称为d3dcompiler_XX.dll,其中XX是ANGLE(libGLESv2)链接的版本号。 – kaliatech

相关问题