构建Qt应用程序Linux

时间:2012-05-27 18:14:03

标签: c++ qt deploying

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

首先,我只是用谷歌搜索“部署qt应用程序li​​nux”并最终得到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

但它显然不正确,因为它甚至没有'examples'文件夹,因为教程说要使用位于那里的“plugandpaint”。

我是Linux的非常非常新用户,我使用的是最新版本的Ubuntu。我对Linux知之甚少,我猜这就是我在这里的原因,尽管看起来在Qt上部署应用程序是不可能的。感谢。

2 个答案:

答案 0 :(得分:1)

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

  • /usr/lib用于非多体系结构版本(例如Ubuntu 11.04)和
  • /usr/lib/x86_64-linux-gnu/用于多体系结构(例如Ubuntu 11.10)。

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

答案 1 :(得分: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脚本,该脚本将运行生成您感兴趣的所有软件包的步骤。