如何使用应用程序部署Qt库?

时间:2015-12-19 18:25:37

标签: linux qt shared-libraries dynamic-linking

这应该很简单,但我遇到了麻烦。我想在安装文件夹中包含一些共享的Qt库和我的应用程序,因此用户不必单独下载Qt。在Windows上,这似乎工作正常,但Ubuntu抱怨当它们与应用程序位于同一文件夹中时不会找到Qt库。

如何将安装目录添加到共享库搜索路径?

2 个答案:

答案 0 :(得分:1)

我可以通过在.pro文件中添加以下行来将安装目录添加到共享库搜索路径,该文件将二进制文件的rpath设置为$ ORIGIN(安装文件夹)。我需要在当前机器上添加QT库的位置(/usr/lib/qt5.5和/usr/lib/qt5.5/lib),以便项目在QtCreator中构建。

unix:!macx {
    # suppress the default RPATH if you wish
    QMAKE_LFLAGS_RPATH=
    # add your own with quoting gyrations to make sure $ORIGIN gets to the command line unexpanded
    QMAKE_LFLAGS += "-Wl,-rpath,\'\$$ORIGIN\':/usr/lib/qt5.5:/usr/lib/qt5.5/lib"
}

unix:!macx行仅适用于linux)

答案 1 :(得分:0)

Windows,Linux和OSX的表现完全不同。 Windows最简单:转储应用程序目录中的所有dll。 OSX是下一个,Linux是最困难的。

Linux具有搜索共享对象的某些搜索路径。这些搜索路径主要是系统库,可能还有一些用户库。由于您不想弄乱用户的系统文件,因此人们更愿意在应用程序目录中拥有共享对象。这是可能的,但您必须告诉Linux读取该目录。您可以通过设置环境变量LD_LIBRARY_PATH来执行此操作。您可以使用脚本执行此操作。请参阅my answer