如何在不安装Qt程序的情况下运行Qt程序



我用Qt5.3.1编写了一个程序,并在我的开发机器上运行,在那里它运行得很好。我将所有必要的.dll文件复制到我的.exe所在的文件夹中。这些是:

  • Qt5Widgets.dll
  • Qt5Network.dll
  • Qt5Guid.dll
  • Qt5Core.dll
  • icudt51.dll
  • icuin51.dll
  • icuuc51.dll
  • libgcc_s_dw2-1.dll
  • libwinpthread-1.dll
  • libstdc++-6.dll

现在我想在一台没有安装Qt的机器上运行这个程序。我该怎么做?用户不应该仅仅为了使用程序而安装IDE,对吧?

其工作的开发机器的详细信息:

  • Windows 8
  • 问题5.3.1

部署平台为:

  • Windows Vista
  • 未安装Qt,但已安装所有必要的.dll

我得到的错误是第一个:

此应用程序无法启动,因为它无法找到或加载Qt平台插件"windows"。重新安装应用程序可以解决此问题。

下一条错误消息是:

此应用程序以异常方式请求运行时终止。请联系支持。

然后程序崩溃但是如果我安装Qt5.3.1,它可以工作。因此,它与c:/Qt目录

中的文件有关

This application failed to start because it could not find or load the Qt platform plugin "windows".

对于这个问题,您应该将插件{QTSDK}/plugins/platforms/qwindows.dll复制到{YOUR_EXE_DIR}/platforms/qwindows.dll

简单的答案是,您要么需要进行静态构建,要么需要重新分发Qt共享库DLL。如果你正在寻找更小的文件大小,静态构建通常会更好,但如果你在LGPL许可证下使用Qt5,这种方法可能会产生法律影响。我不是律师,但你可以在LGPL第4.1节中阅读LGPL链接规则。

详细的答案是,您应该阅读通用Qt5部署指南和Qt5 for Windows部署指南。这些都很详细。

更好的解决方案是使用Qt SDK应用程序"windeployqt"。它用于将所有必需的dll和插件复制到基于目标平台的应用程序文件夹中。然后你可以在另一台计算机上运行它。以下是文档:https://doc.qt.io/Qt-5/windows-deployment.html.

例如,如果可执行文件是使用mingw53_32构建的,并且可执行文件位于"C:\example_qtapp":中

QT_INSTALL_DIRminqw53_32binwindeployqt.exe c:example_qtapp

我也遇到过这个问题,

在您的Qt目录中,使用正确的Qt版本C: \Qt\Qt5.2.1\5.2.1 \mingw48_32\plugins\platforms\

将qwindows.dll复制到可执行文件旁边的新文件夹中,这样您的列表将是

  • Qt5Widgets.dll
  • Qt5Network.dll
  • Qt5Guid.dll
  • Qt5Core.dll
  • icudt51.dll
  • icuin51.dll
  • icuuc51.dll
  • libgcc_s_dw2-1.dll
  • libwinpthread-1.dll
  • libstdc++-6.dll
  • 平台/qwindows.dll

您应该将Qt DLL放在可执行文件的发布版本中。这些是Qt5Core.dllQt5Gui.dll,可能还有您使用过的其他模块。这些dll文件位于bin文件夹中已安装的Qt目录中。如果您使用的是MinGW,还应该放置LIBGCC_S_DW2-1.DLLMINGWM10.DLLLIBSTDC++-6.dll

如果你正在使用插件,你应该把它们的dll放在exe旁边一个名为plugins的文件夹中。如果使用图标和图像,您应该将它们的dll(如qico.dllqsvg.dll(放在名为imageformats的文件夹中。

如果有Qt dll,它们应该可以工作。我的猜测是您缺少IDE的运行时库/dll。例如,如果您使用Visual Studio 2010作为IDE,则需要安装VS2010 Redistributable x86/x64链接,具体取决于您的体系结构。

您还应该将{QTSDK}/plugins复制到可执行文件所在的目录中。然后在同一位置创建qt.conf(带有可执行文件(,内容如下:

[Paths]
Plugins=plugins

然后,运行您的程序。我在linux上也做了同样的操作。

在应用程序文件夹中,按住SHIFT键并用鼠标右键单击。你会看到-在这里打开命令窗口

  1. 单击此处的"打开命令窗口">
  2. TYPE windeployqt.exe app_name.exe--参数和HIT ENTER

示例:

windeployqt.exe APP_NAME.EXE --release --no-translations --no-system-d3d-compiler --no-compiler-runtime --no-angle --no-opengl-sw

相关内容

  • 没有找到相关文章

最新更新