用于部署QT应用程序的文件



我当前使用C 和QT制作一个简单的计算器。但是,我需要部署它,以便它可以在其他计算机上运行?我需要包括哪些QT DLL文件以及如何包含?我对部署一无所知,这就是为什么我需要帮助。

您应该将QT dll放在可执行文件的发行版本上。这些是qtcore4.dll,qtgui4.dll,也可能是您使用的其他模块的qtcore4.dll。这些DLL文件位于BIN文件夹中的已安装QT目录中。您还应将MSVCR100.dll和MSVCP100.dll放置,以防您使用MSVS2010。如果使用插件,则应将其DLL放在您旁边的名为"插件"的文件夹中。如果使用图标和图像,则应将其dll(例如qico4.dll和qsvg4.dll)运送到一个名为" ImageFormats"的文件夹中。

我认为这个问题以前已经回答了,但是以防万一我将在QT项目文件中共享此片段。

在此示例中,我认为您有一些环境变量qtbase和qtver可以适当安装的QT和哪个QT的值,并且我认为您必须具有cpbashmkdir。或者,您可以更改这些命令以使用通常使用的任何内容来复制文件并制作目录。

还注意到qwindows.dll的路径。它是分布中的plugins/platforms/qwindows.dll(至少在我的安装中),但在部署副本中是platforms/qwindows.dll。至少这是我使它工作的唯一方法。我不记得在文档中看到了这一点,但也许我错过了一些东西。

#
# Copy Qt dependencies
#
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/Qt5Core.dll" "$$OUT_PWD")
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/Qt5Gui.dll" "$$OUT_PWD")
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/Qt5Widgets.dll" "$$OUT_PWD")
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/libgcc_s_dw2-1.dll" "$$OUT_PWD")
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/libstdc++-6.dll" "$$OUT_PWD")
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/libwinpthread-1.dll" "$$OUT_PWD")
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/icudt51.dll" "$$OUT_PWD")
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/icuin51.dll" "$$OUT_PWD")
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/icuuc51.dll" "$$OUT_PWD")
system("bash -c "mkdir -p $$OUT_PWD/plugins"")
system("bash -c "mkdir -p $$OUT_PWD/platforms"")
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/plugins/platforms/qwindows.dll" "$$OUT_PWD/platforms/")

如果您使用QT创建者,那么您只需要将QT DLL与可执行文件运送。这意味着,DLL必须位于与可执行文件的同一文件夹中。通常,该程序应该告诉您它需要什么DLL。只需尝试在没有QT的计算机上启动您的EXE,您就会明白我的意思。

如果您改用Microsoft Visual Studio,则还必须在目标计算机上安装可视C 重新分布。

相关内容

最新更新