我在Ubuntu 12.04上安装了QT 5.2。我没有构建它,而只是从QT网站上下载并解压缩。我的问题是,我们如何包装所需的LIB以及可执行的部署?QT文档说我们应该构建用于静态链接的QT,但是QT目录中缺少"配置"文件。预先感谢。
好。因此,在无数小时的谷歌搜索后,我终于设法部署了QT应用程序及其依赖关系。这是在Ubuntu 12.04上完成的,QT 5.2。
这就是我的做法:
-
使用以下命令从源构建QT:
./configure -opensource -confirm-license -prefix ./qtbase -make libs -make tools -release -opengl desktop -static -skip qtwebkit -no-icu -nomake tests -nomake examples make -j -4
您可以从http://download.qt-project.org/official_releases/qt/5.2/5.2/5.2.1/single/qt-everywerwhere-popensourwhere-opensource-src-5.2.1.tar.gz下载源您无法静态构建QT的安装程序。
-
打开QT项目并重建。QT依赖项将内置在应用程序可执行文件中。与LDD联系以查看是否正确完成。
ldd ./<app_executable>
-
现在,当您尝试在没有QT的系统上运行它时,可能会要求您使用LDD看到的其他第三方依赖项。例如:libxcb -...您可以在目标系统上使用APT-GET安装这些依赖项,也可以使用您的应用程序提供LIB。也就是说:将所需的.SO文件及其软链接以及您的可执行文件以及您的可执行文件一起放入名为libs的目录中。
-
解决了LIB依赖问题问题后,应用程序将出现有关丢失QT字体的错误。解决此问题的最简单方法是与应用程序一起提供QT字体文件夹。
-
此链接提供了一种很好的方法:http://goblincoding.com/2013/11/11/deploying-qt-5-5-plications-on-ubuntu-12-04/
-
上一页的摘要是您需要提供一个小的bash脚本来运行您的应用程序。脚本应如下:
#~/bin/bash export LD_LIBRARY_PATH=./libs export QT_QPA_FONTDIR=./fonts ./<app_executable>
目标系统现在将从您提供的目录中找到LIB和字体,并将在没有问题的情况下运行。希望这有所帮助。
注意:我没有尝试过,但是即使您也提供QT LIB,也不静态地构建QT来源。