【问题标题】:Is it possible to deploy a Qt application without Qt built from source?是否可以在没有从源代码构建的 Qt 的情况下部署 Qt 应用程序?
【发布时间】:2017-02-24 16:03:31
【问题描述】:

我使用 Qt Creator 在 Raspberry Pi 2 和 Raspbian Jessie 上用 C++ 编写了一个应用程序。现在我想部署它,这样我就可以在另一个功能最少的 Raspberry 上使用它。这意味着没有安装 desktop-gui 或 qtcreator。我正在使用 Raspbian Jessie Lite。

我尝试遵循此文档,但静态链接和共享库方法都不起作用。 http://doc.qt.io/qt-5/linux-deployment.html

在彻底搜索之后,这似乎不起作用,因为我有 Qtcreator 是“安装”而不是“从源代码构建”。 这个假设对吗?

如果不从源代码构建就无法部署我的应用程序吗?

【问题讨论】:

  • 我不认为这取决于你如何构建 Qt。最重要的是,如果目标系统上不存在相关的 Qt 库,则应将您的应用程序与相关 Qt 库一起部署。

标签: c++ qt deployment


【解决方案1】:

在 linux 上部署 qt 应用程序的首选方法是将其链接到您所针对的官方包分发中的共享对象。

与qdeveloper无关,只与目标qt库有关。

相反,如果您从源代码构建 qt,则需要提供共享对象。

这意味着: - 使用您正在使用的发行版在 resbery pi 上编译它并安装了 qt 和 dev 包 - 根据该发行版打包它 - 安装 qt 包后安装在目标上。 qt dev 包不再需要了。

请注意,还涉及其他库,这同样适用于它们。

【讨论】:

  • 请编辑您的答案。混合共享对象动态链接库可能意味着严重的麻烦......如果这是关于Linux,那么它应该是共享对象。跨度>
  • 您特别推荐在目标上安装什么 qt 包? (你知道 apt-get 命令吗?)我想要一个我的应用程序的可执行文件,之前不需要安装 qt 包。我认为这就是整个部署的意义所在。
【解决方案2】:

所以,基本上你想将你的 Qt 应用程序部署在没有安装 Qt 的其他系统中。

在 linux 中部署 Qt 是一个相当困难的过程。您分享的The link 是一个知识渊博但很难部署的过程。

为了更简单,我建议查看this。在这里你可以找到an executable binary,使用它你可以为你的Qt项目创建一个独立的appimage,它可以在任何其他系统(运行相同的linux发行版)中运行。您只需输入由 Qt Creator 本身创建的可执行二进制文件的路径,上述工具将完成剩下的工作。它将解决所有依赖关系并输出您的 Qt 应用程序的独立二进制文件,该二进制文件可以在其他系统中运行。

我愿意接受进一步的问题。希望这可以帮助。

【讨论】:

  • 谢谢!我不得不做一些其他的事情,但现在我又回到了这个问题。我尝试运行 linuxdeployqt 程序,但出现此错误:“无法执行二进制文件:执行格式错误”。我认为那是因为部署工具不是为 Rapsberr pi ARM 架构制作的。我能做些什么来完成这项工作吗?
猜你喜欢
  • 1970-01-01
  • 2014-10-19
  • 2020-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多