如何部署QT5.2应用程序?

时间:2014-02-07 11:37:49

标签: deployment qt5

我在Ubuntu 12.04上安装了QT 5.2。我没有构建它,只是从QT网站下载并解压缩。我的问题是我们如何将所需的lib与可执行文件一起打包以进行部署? QT文档说我们应该为静态链接构建QT,但QT目录中缺少“configure”文件。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

确定。因此,经过无数小时的谷歌搜索后,我终于设法部署了我的Qt应用程序及其依赖项。这是在Ubuntu 12.04上用Qt 5.2完成的。

我就这样做了:

  1. 使用以下命令从源静态构建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
    
  2. 您可以从http://download.qt-project.org/official_releases/qt/5.2/5.2.1/single/qt-everywhere-opensource-src-5.2.1.tar.gz下载来源 您无法静态构建Qt的安装程序版本。

    1. 打开您的Qt项目并重建它。 Qt依赖项将内置到app可执行文件中。检查ldd以查看它是否正确完成。

      ldd  ./<app_executable>
      
    2. 现在,当您尝试在没有Qt的系统上运行它时,它可能会要求您使用ldd看到的其他第三方依赖项。例如:libxcb -... 您可以在目标系统上使用apt-get安装这些依赖项,也可以在应用程序中提供libs。即:将所需的.so文件及其软链接与可执行文件一起放入名为libs的目录中。

    3. 修复了lib依赖项问题后,应用程序将提供有关缺少Qt字体的错误。最简单的解决方法是提供Qt字体文件夹和应用程序。

    4. 此链接提供了一种很好的方法: http://goblincoding.com/2013/11/07/deploying-qt-5-applications-on-ubuntu-12-04/

    5. 上述摘要是您需要提供一个小型bash脚本来运行您的应用。脚本应如下:

      #~/bin/bash
      export LD_LIBRARY_PATH=./libs
      export QT_QPA_FONTDIR=./fonts
      ./<app_executable>
      
    6. 目标系统现在将从您提供的目录中找到libs和字体,并且可以毫无问题地运行。希望这有帮助。

      注意:我还没有尝试过,但即使您在不静态构建qt源的情况下提供Qt库,此脚本方法也应该有效。