Qt Windows部署过程

时间:2015-11-19 00:12:03

标签: windows qt deployment

我正在学习如何使用Qt创建应用程序。我创建了一个在安装了Qt的任何机器上运行良好的小应用程序。我想使用动态链接的Qt库部署到Windows。我按照发现here的说明进行操作,并在其他Stackoverflow文章的帮助下,我能够正常运行应用程序,但现在没有任何显示。应该有一个带有按钮等的小UI,但是尽管Windows任务管理器显示应用程序正在运行,但它并没有被显示。

我的第一个想法是我丢失了一些dll文件,但即使我复制了在C:\ Qt \ 5.5 \ msvc2013_64 \ bin中找到的每个dll,整个C:\ Qt \ 5.5 \ msvc2013_64 \ plugins目录,msvcp120 .dll,msvcr120.dll和plaforms \ qwindows.dll到应用程序目录我还是无法让它显示UI。

相同的应用程序将在安装了Qt的任何Win x64计算机上运行。我只是没有要求用户下载700mb工具来运行9kb应用程序,这是一个非常强大的解决方案。

我在Qt部署到Windows时缺少哪一步?

有关详细信息,我将其设为open source project.您可以在bin / Win_x64目录中看到构建的应用程序的发行版本,其中包含我认为运行应用程序所需的所有.dll文件。如果您将该文件夹复制到没有安装Qt的Win x64计算机上,那么您应该可以重现我的错误。

EDIT1: 我被要求提供构建/发布目录中的文件列表:

ArkCharacterSelector.exe
ArkCharacterSelector.res
CharacterManager.obj
Logger.obj
main.obj
moc_CharacterManager.cpp
moc_CharacterManager.obj
qrc_qml.cpp
qrc_qml.obj

1 个答案:

答案 0 :(得分:1)

以下是master/bin/Win_x64中缺少的文件:

bin/Win_x64
├── QtQuick (both dirs are from qt_base_dir/qml/QtQuick)
│   ├── Controls
│   └── Window.2   
├── QtQuick.2 (both files are from qt_base_dir/qml/QtQuick.2)
│   ├── qmldir
│   └── qtquick2plugin.dll
│
│   (Those are only needed for QtWebKit builds)
├── icudt53.dll
├── icuin53.dll
└── icuuc53.dll  

可以删除这些文件:

bin/Win_x64
└── platform
    ├── qwindowsd.dll (debug dll)
    └── qwindowsd.pdb (only needed for debugging the debug dll)

快乐部署!