【问题标题】:Building Qt Application Linux [closed]构建 Qt 应用程序 Linux [关闭]
【发布时间】:2012-05-30 00:54:11
【问题描述】:

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

首先,我刚刚在 Google 上搜索了“部署 qt 应用程序 linux”,最后得到了 this article,这应该会让你的生活变得更轻松,但事实并非如此。我下载了那个 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

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


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

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

path/to/qt

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

/usr/share/qt4

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

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

【问题讨论】:

  • 您的问题到底是什么?你安装Qt了吗?您是否构建了您的应用程序?是编译失败还是运行失败?
  • 通过 Qt Creator 运行时,一切正常。我对其进行了调试,修复了错误,现在我准备将其发布/分发给人们。
  • 是的,你这样做到底有什么问题?你的目标是什么发行版?你要发布资源吗?二进制文件?两个都?您没有在这个问题中显示特定问题,因此很难告诉您如何解决它,并且“在 Linux 上打包应用程序”是一个非常广泛的问题 - 每个发行版有它最喜欢的包装生态系统。
  • 我希望它在 Ubuntu 上运行,如果这就是你的要求。此外,我正在发布源代码和二进制文件。如果可以解决问题,我实际上已经在 GitHub 上找到了它:github.com/hetelek/XDBF-Manager/downloads
  • 好的,那么您有什么具体问题?你目前在做什么失败了?

标签: c++ qt deploying


【解决方案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 脚本,该脚本将运行生成您感兴趣的所有软件包的步骤。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-15
      • 2013-04-09
      • 2011-01-26
      相关资源
      最近更新 更多