我在Windows 7旗舰版上开发了一个简单的Qt 5.0.2应用程序。 作为一个编译器,QtCreator使用了MSVC2012_64bit。 而且我无法将我的应用程序移动到其他计算机上。 这是行不通的。 Qt应用程序需要我无法find的DLL。 依赖资源pipe理器认为下面的.dll
没有find。 我在哪里可以find他们? 为什么这个问题如此广泛地传播? 所有的人都抱怨说,他们不能让他们用Qt开发的.exe
工作在其他电脑上。
编辑1:顺便说一句,当我添加从互联网上下载DCOMP.dll
,没有发现的DLL成为现在的2-3倍多:)
编辑2:另外请注意,在其他电脑(Windows 7家庭高级版),当我双击exe文件,它表明它loades和没有影响,没有任何错误什么都没有。
这是我需要的DLL的列表,我也复制了C:\Qt\Qt5.0.2\5.0.2\mingw47_32\plugins\platforms
文件夹:
只是这个,它为我工作。 顺便说一下,我使用Windows 7旗舰版64x和Qt 5.0.2的Windows 32位(MinGW 4.7,650 MB)的Qt包。
编辑:您可能还需要QtCreator的.dll复制,也可能需要有一个名为qt.conf
文件与以下内容(从@Renato答案复制):
[Paths] Libraries=./platforms
只需将文件qt.conf
添加到您的应用程序目录中以下内容
[Paths] Libraries=./platforms
然后复制到相同的应用程序目录,你会发现到目录的子目录“平台”C:\ Qt \ Qt5.1.1 \ Tools \ QtCreator \ bin
就这样。
这可以解决因为qtcore.dll编译与您的qt instalation的内部路径。 (我不知道嗨!)。 因为,当应用程序启动“平台”中的图书馆时,qt.conf将被qtcore全部读取,并且该应用程序可以在任何主机上运行。
警告:qtcore和平台子目录必须从相同的qt instalation成为。
对不起,英文,但解决方案正常工作。
Qt这些天(至少Qt 5.2,如果不是更早的话)会附带“windeployqt.exe”,当你指向你编译的程序时(如果你像我一样使用它们,作为附加参数) QM Quick程序的qmldir path / to / QML / files)应该将所有需要的DLL吐出到你编译的程序当前驻留的同一目录中。 所以,对于我自己在本地的构建机器上,我跑了一些东西:
windeployqt --qmldir C:\Code\AppSource C:\Code\build-msvc2010\release
这是与我的$ PATH Qt \ bin目录(或者,我猜是用Windows的说法,%路径%;))使用Qt 5.5,虽然我已经做了5.2和5.3一样。
IIRC如果使用MSVC作为编译器我仍然需要手动复制这些DLL(在我的情况下,msvc2010,所以msvcp100.dll和msvcr100.dll),但我可以记住错误。
感谢您的帮助人员!
对我来说,只是添加qwindows.dll
到/platforms
目录不知何故削减它。
我终于把所有的工作都直接地复制到了我的应用程序的二进制目录,并创建了一个qt.conf
以下内容的qt.conf
文件:
[Paths] Plugins=./plugins