qt - 部署 Qt 应用程序

标签 qt deployment portability

简而言之,问题是:我刚刚在运行 Linux Ubuntu 的计算机上使用 Qt Creator 完成了我的第一个应用程序,现在我如何让每个人都可以使用它。现在是更详细的版本;)

我必须为问这个问题道歉,我知道这个问题可能已经被问过很多次了,而且我可以阅读官方文档。我对编程完全陌生,到目前为止我读过的所有东西都让我很困惑。如果您愿意提供帮助,请假设我一无所知:)

开始吧:我刚刚在我的笔记本电脑上使用 Qt Creator 设计了我的第一个应用程序(一个科学程序),该应用程序运行在 Linux Ubuntu 下。它运行良好,我为此感到非常自豪 ;)

这是我的项目的组成部分:40 个头文件、42 个源文件、1 个 pro 文件、1 个 qrc 文件、1 个 html 文件和 7 个 png 文件。在代码中,我将 #include 用于一堆相当标准的 Qt 类(QWidgetQTextBrowser 等等,其中可能有 40 个).

现在我想把它提供给其他人。对于 Linux 和 Mac 用户,我想出了一个办法:我可以压缩包含我的项目的文件夹,告诉他们在他们的计算机上安装 Qt,然后下载并解压缩文件到他们的硬盘上,在文件夹并运行

qmake myProject.pro
qmake
make

这似乎工作正常(顺便说一句,这不是 Qt creator 所做的重要吗?qmake 步骤是 qmake-qt4 myProject.pro -r - spec linux-g++ 并且 make 步骤是 make -w)。现在,我假设有一个解决方案,我不要求他们下载和安装类似 200Mo 的 Qt Material 。至于 Microsoft Windows 用户,我一无所知。

如果您能以非常具体的方式向我解释我需要做什么,我将不胜感激。不用说,我会寻求最好和最简单的解决方案,我不需要了解有关部署的所有内容。非常感谢!

编辑:以防万一:我一直在使用基于 Qt 4.8.1(64 位)的 Qt Creator 2.5.0,我正在使用装有 Ubuntu 12.04 64 位的笔记本电脑

最佳答案

对于 Linux 和 Mac 用户,我会为他们编译 32 位和 64 位格式的软件——没有人喜欢从源代码编译未知软件。显然,为那些在更不寻常的体系结构/操作系统上的人保留源代码选项(并为他们提供一个模仿 Qt Creator 调用的命令的 shell 脚本!)。由于几乎每个 发行版上的包管理器都提供了 Qt 运行时(并且大多数情况下都预装了 Qt 运行时,例如 KDE 需要它们),通过不要求他们从源代码编译,您的用户将拥有下载量小得多(如果有的话),并且不需要他们从他们可能不知道的网站下载软件。当然,最好的方法是尝试将您的软件作为一个软件包添加到主要发行版的存储库中,但这可能需要一些时间来组织。

为 32 位和 64 位格式的 Windows 用户编译您的软件。要求用户下载他们可能不知道的运行时库,并将它们放入他们的 system32 文件夹中,这通常是不受欢迎的……因此大多数应用程序将他们需要的库所有与他们的应用程序捆绑在一起。基于 Qt 的应用程序没有什么不同,因此将运行时放入可执行文件所在的文件夹中。此外,创建合适的安装程序更加专业,有一些适用于 Windows 的免费安装程序应用程序,网络搜索将为您提供最受欢迎的(我想我也看到了关于它的线程)。

如您所见,这些平台差别不大,我要说的重点是:不要强制人们从源代码编译!地球上的绝大多数人甚至不知道什么是编译,所以你自己提供主要的架构/操作系统。

关于qt - 部署 Qt 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12792501/

相关文章:

c++ - QDateTimeEdit选择每月的最后一天

angular - 如何在azure中设置nodejs版本

ubuntu - 部署 Yesod 网络应用程序

Django - 为新手部署

c++ - 表单输入验证,多焦点问题

user-interface - Qt 扩展支持吗

linux - 如何交叉编译我的 Linux 应用程序以在 Linux 中获得 Windows 可执行文件?

c++全局变量的初始化顺序

c++ - 这个 C++ 代码是可移植的吗? (假设多维数组有连续的内存布局)

javascript - 内存和一些有关 JavaScript 的更多信息