【发布时间】:2016-11-16 12:34:03
【问题描述】:
请记住,所有这些都与 Qt Creator(5.6.1 和 5.7):
我在我的工作机器上做了一个项目(Win7,64 位,在 Qt 5.6.1 中使用 MinGW 5.3.0 32 位编译)。它在调试和发布模式下都能完美运行。
不久之后,我决定在另一台机器(WinXp,32 位)上测试我的程序。我刚刚传递了可执行文件和.dll。仍然像魅力一样工作。
后来,我在我的游戏机(Win10,64 位)上测试了我的程序的相同版本。奇怪的是,它根本不起作用。我收到以下错误:
“无法找到或加载 qt 平台插件“windows””。
我记得如果缺少 .dll,就会发生此错误。所以我将所有 .dll 从 Qt 文件夹传递到我的程序文件夹(意图删除不需要的后者)。令我惊讶的是,它仍然没有工作。但错误是不同的:
“找不到或加载 qt 平台插件“windows”...可用的平台插件有:minimal、offscreen、windows、minimal、offscreen、windows。”
它非常清楚地找到了平台插件窗口(qwindows 或 qwindowsd... 或两者兼而有之),但无法加载它。任何想法为什么?
编辑:C:\Qt\5.7\mingw53_32\bin 中的所有 .dll 都已复制并粘贴到可执行文件所在的文件夹中。
C:\Qt\5.7\mingw53_32\plugins 中的所有文件夹都被复制并粘贴到可执行文件所在的文件夹中。
这几乎就是我添加的所有 .dll!
【问题讨论】:
-
由于您从未解释过从何处复制 DLL,因此我假设您在这些 DLL 或其依赖项之一中存在位不匹配。
-
@IInspectable 我在问题中添加了一些信息。谢谢你叫出来!
-
不要复制所有可以找到的 dll,只需将 .exe 放在一个空文件夹中并打开 Qt5.* 命令行。然后运行:
windeployqt yourfile.exe。这将从 Qt 发行版中复制所需的 dll -
使用
windeployqt绝对是最好的选择! -
@andseg 有。查看您的
$QTDIR/$QTVERSION/$COMPILER目录。应该有一个macdeployqt。我不确定 linux,因为 linux 默认使用系统范围的共享库,而不是内置到单个包中