是否可以在没有从源代码构建Qt的情况下部署Qt应用程序?

问题描述:

我用Raspbian Jessie在Raspberry Pi 2上使用Qt Creator在C++中编写了一个应用程序。现在我想部署它,以便我可以在具有最少功能的另一个树莓上使用它。这意味着没有安装desktop-gui或qtcreator。我正在使用Raspbian Jessie Lite。是否可以在没有从源代码构建Qt的情况下部署Qt应用程序?

我试图按照这个文档,但静态链接和共享库的方法都不起作用。 http://doc.qt.io/qt-5/linux-deployment.html

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

如果没有源代码构建,部署我的应用程序是不可能的?

+0

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

在Linux上部署qt应用程序的首选方法是将其链接到您的目标的官方软件包分发中的共享对象。

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

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

这意味着: - 编译它与您正在使用以及具有Qt和开发的软件包安装 的发行resbery PI - 包吧acording到发行 - 安装qt软件安装后,在目标上。 qt开发包不再需要了。

小心,其他库也涉及到,同样适用于他们。

+0

请编辑您的答案。混合_shared objects_和_dynamic链接libraries_可能意味着严重的麻烦......如果这是关于Linux,那么它应该是_shared objects_。 – Scheff

+0

你特别推荐在目标上安装什么样的qt软件包? (你知道apt-get命令吗?) 我希望我的应用程序的可执行文件不需要安装qt包。我认为这就是整个部署的内容。 –

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

在linux下部署Qt是一个相当困难的过程。您分享的The link是相当有知识但很难部署的过程。我想建议看看this。在这里你可以找到an executable binary,使用它你可以为你的Qt项目创建一个独立的appimage,它可以在任何其他系统(运行相同的linux发行版)中运行。你只需输入由Qt Creator自己创建的可执行二进制文件的路径,上述工具将完成剩下的工作。它将解析所有依赖项并输出Qt应用程序的独立二进制文件,该文件可以在其他系统中运行。

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

+0

谢谢!我不得不做一些其他的事情,但现在我回到了这个问题。我试图运行linuxdeployqt程序,但我得到这个错误:“无法执行二进制文件:Exec格式错误”。我假设这是因为部署工具并不适用于Rapsberr pi ARM体系结构。我能做些什么来完成这项工作? –