创建 setup.exe qt

Posted

技术标签:

【中文标题】创建 setup.exe qt【英文标题】:creating a setup.exe qt 【发布时间】:2013-06-01 03:48:57 【问题描述】:

到目前为止,我使用直接从 qt creator 运行的 qt creator 开发了简单的应用程序,我没有创建任何 setup.exe 文件来安装这些应用程序。我什至不知道 setup.exe 文件是什么。我的问题是,当我完成项目后,即 .cpp、.ui 和 .h 文件被编码,那么如何创建 setup.exe 文件,以便可以在平台上安装应用程序?我正在使用 Windows 7。

    解释一下 setup.exe 是什么? 如何创建 setup.exe? setup.exe 运行时实际发生了什么? 如果项目文件大小为 5KB,并且它#include 来自 Qt 的一些模块,安装后应用程序的大小会增加吗?

【问题讨论】:

【参考方案1】:

    当您选择发布版本时,

    在您的构建文件夹->发布文件夹中形成一个 exe,将该 exe 复制到某处,

    点击它,它会告诉你它需要什么必要的dll文件

    一个接一个地复制,即复制 dll,然后再次单击它,依此类推...在安装 qt 的位置搜索 dll。将它们复制到您的 exe 所在的位置。

    如果您正在加载一些外部图像或文件...不要忘记在 windows 中使用 QCoreApplication::applicationFilePath() 提供相对于 exe 的路径它给出了相对于 exe 的路径。但它在 mac 中的行为不同。使用 资源文件 即 .qrc 也可能有所帮助。只需将所有资源加载到资源文件中即可。

    现在当您的 exe 能够独立运行时。然后是setup.exe,这不过是一个exe,它将所有这些文件复制到指定的路径中。您甚至可以编写 setup.exe 来执行此操作。

    必须有许多第三方应用程序来制作所有 dll 的以及您的 文件您的 exe 进入 setup.exe。

    或者一个简单的事情是,将你所有的 dll、exe 和外部文件压缩成一个 zip。这是您最简单的设置。

最后一件事,设置大小取决于您的 exe、它需要的 dll 和外部文件。如果您使用许多外部文件,则大小会增加。您正在使用的库,即如果您正在使用网络、xml 模块等,那么它需要更多的 dll,因此会增加设置的大小。

【讨论】:

我只是喜欢你解释这些步骤的方式 :) +1 前 5 个步骤 我将所有 dll 复制到发布文件夹(.exe 文件所在的位置)并运行 .exe,它会弹出一条消息,“此应用程序已请求运行时以不寻常的方式。请联系应用程序的支持团队了解更多信息" 我还必须将 libEGL.dll 复制到我的 exe 文件所在的目录。否则双击 exe 后什么也没有发生。【参考方案2】:

至问题 1:“setup.exe”基本上将您的可执行文件和任何必要的文件(包括图像、dll 等)复制到目标机器,并设置环境以正确执行您的程序(例如 dll 注册)

至问题 2:您必须为 Qt 应用程序编写自己的部署工具。

您可以编写脚本来复制已编译的程序,以及将任何必要的库复制到目标计算机。检查文档here 和here 或使用第三方工具为您生成“setup.exe”,例如NSIS

至问题 3:见上文

对于问题 4:据我了解,动态链接的 Qt 应用程序的大小主要取决于您的“核心”程序,因为其他 Qt 模块很容易编译。

【讨论】:

您应该在您的问题中补充一点,即没有 Windows 设计指南规定必须将安装程序称为 setup.exe,事实上大多数情况下并非如此。现在还有一个可用的测试版 Qt 安装程序框架:qt-project.org/wiki/Qt-Installer-Framework

以上是关于创建 setup.exe qt的主要内容,如果未能解决你的问题,请参考以下文章

将我的 QT 应用程序与 Inno Setup 中的视频/图像文件相关联

如何创建 MFC 应用程序来运行 setup.exe(msi 安装程序)?

我有一个使用 .net 和 Visual Studio 创建的 setup.exe,我想更改默认文件夹的权限

创建autorun.inf - “找不到应用程序”错误

C# 如何为 Windows 服务创建安装项目以自动安装它?

office2013 运行 setup.exe找不到指定模块