在Windows上部署Qt应用程序?

3
我是Qt的新手,不知道如何在Windows上部署一个简单的Qt应用程序。在Qt Creator中运行时可以正常运行,但是直接执行时无法运行。我安装了最新版本的Qt SDK,并使用所有默认设置。
我已经阅读了数十篇“如何”指南,它们提供了相互矛盾的信息,还有数十个论坛帖子、博客文章和问题。我无法找到清晰解释如何在Windows上部署Qt应用程序的说明。
我尝试将我能找到的所有DLL文件放入应用程序目录,但这并没有起作用。我还尝试静态构建Qt,但也没有成功。
有人可以帮助我吗?
编辑:谢谢你们的回复。以下是一些额外的信息:
我正在使用“Qt Creator 2.4.1,基于Qt 4.7.4”
我在不同的文件中有以下包含:
#include <QtGui/QApplication>
#include <QDebug>
#include <QTextEdit>
#include <QtGui>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include "qthread.h"
#include "windows.h"
#include <QMessageBox>

我正在使用Qt默认的编译器MinGW。

2个回答

1
简单的解决方案是将Qt dlls与您的部署一起包含,将它们放置在可执行文件相同的位置。请注意,Qt对于发布版本和调试版本使用不同的dlls,因此不要意外地部署调试版本。
使用静态库也是可行的。您的编辑说明您已经尝试过静态和同目录部署。如果这两者(特别是静态构建)都无法正常工作,则您正在做一些严重错误,并且很难在SO等论坛上进行调试。

好的,暂时不考虑静态构建,我怎样才能让它独立运行? - Nate

0

首先,请发布以下详细信息:

您正在使用哪个Qt版本? 您正在使用哪些模块 - QtNetwork,QTGui等?

最后,您使用的编译器是什么,MinGW,MSVC?

您所需做的就是在应用程序目录中部署QTCore dll和其他您在项目中包含的模块的dll。

此外,如果您使用的是MSVC编译器,则必须部署MSVC运行时。您可以在Microsoft网站上找到可再发行的文件。

或者,如果您使用mingw,则可能需要部署适当的g++运行时。

如果您仍然无法使用上述信息部署应用程序,请提供其他详细信息,以便我可以建议正确的方法。


我增加了更多细节,谢谢。我也尝试将E:\Qt\QtCreator\bin中的所有 .dll复制到我的应用程序文件夹,但仍无法运行。 - Nate
请您提供执行应用程序时出现的错误。如果您无法看到任何错误,请尝试搜索Windows应用程序事件日志。它应该会指定确切的错误。此外,在部署应用程序时,您还需要放置Mingw运行时库,该库不在Qt目录中。也请将“mingwm10.dll”文件放置在部署文件夹中。 - Murtuza Kabul
我在Qt目录中搜索了“mingwm10.dll”,发现有八个结果,其中一些文件大小不同。我应该使用哪一个? - Nate
我原本期望有几个文件,但你提供了八个,让我有点困惑。老实说,我使用MSVC编译器,所以这从来不是问题。我知道这是一种不太好的方法,但你可以尝试将它们逐个放入应用程序文件夹中,然后找出能正常工作的那个文件。如果你能发布事件日志,那就更容易了。 - Murtuza Kabul
嗯..请查看Windows事件日志并发布详细信息。现在我认为应用程序代码本身存在问题。 - Murtuza Kabul
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接