2

我在 Qt 上为 Linux 部署应用程序时遇到了很多麻烦。我知道有很多关于它的文章,但我只是觉得每个人都想让你更加困惑,这就是我在这里的原因。我已经尝试了一些东西,我将在下面解释。

首先,我刚刚在 Google 上搜索了“部署 qt 应用程序 linux”并最终找到了这篇文章,该文章旨在让您的生活变得更加轻松,但事实并非如此。我下载了那个 LSB SDK,然后尝试运行 install.sh,但结果当然是一个错误:

error: could not find configuration

它也很明显,因为在同一目录中有一个 inst-config,如果我查看该 install.sh 脚本,我会看到它检查的内容:

if [ \! -e ./inst-config ]; then
echo "error: could not find configuration" >&2
exit 1
fi

我尝试编辑到直接位置的路径,它通过了该错误,但只是导致了更多错误,所以我认为这不是最简单的方法。


接下来我直接去了诺基亚,在那里我找到了这篇文章。我读了一点,我看到它在问我是想静态构建还是动态构建。我只想要一个最简单的工作应用程序,所以我认为共享库是最简单的,因为在 Windows 上我需要做的就是打开 Dependency Walker 并使用应用程序拖动一些 DLL。当然,事实并非如此。

最让我烦恼的一件事是它在整个教程中引用:

path/to/qt

我似乎无法正确找到的地方。我找到了这条路:

/usr/share/qt4

但这显然是不正确的,因为它甚至没有“示例”文件夹,因为教程中说要使用位于其中的“plugandpaint”。

我是 Linux 的一个非常非常新的用户,我使用的是最新版本的 Ubuntu。我对 Linux 了解不多,我想这就是我在这里的原因,尽管在 Qt 上部署应用程序似乎是不可能的。谢谢。

4

2 回答 2

1

在我看来,OP 正在询问有关分发应用程序的问题。如果是这种情况,您可能需要在此处阅读:https ://wiki.ubuntu.com/PackagingGuide/Complete 。

或者,这是一个更快速和肮脏的指南:http ://ubuntuforums.org/showthread.php?t=910717 。

这个想法是您将应用程序放入 .deb 存档并指定所有依赖项。然后,该程序的用户将让他们的包管理器下载他们运行它所需的一切。使用 Linux,您不必担心自己提供所有库(如果它们位于存储库中)。

如果你想仔细检查你的程序正在使用哪些库,你可以在二进制文件上运行 ldd 命令,或者如果你需要很多细节,可以使用 strace。

您必须记住的一件事是,Linux 上的不同发行版具有不同的打包系统。到目前为止,最流行的是 DEB(Ubuntu、Debian)和 RPM(Fedora、Mandriva、OpenSUSE),但也有分发 tgz 文件的系统。通常,如果您为所有这些发行版发布软件,您希望编写一个 shell 脚本,该脚本将运行生成您感兴趣的所有包的步骤。

于 2012-05-28T16:42:52.727 回答
1

如果您在查找 Qt 的动态库时遇到问题,可以将它们安装在两个可能的位置:

  • /usr/lib对于非多架构版本(例如 Ubuntu 11.04),以及
  • /usr/lib/x86_64-linux-gnu/对于多架构的(例如 Ubuntu 11.10)。

搜索这些文件夹并查看某些libQt....so文件名模式的文件名。

于 2012-05-28T07:40:37.393 回答