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

标签 linux qt shared-libraries dynamic-linking

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

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

最佳答案

通过将以下行添加到 .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)

关于linux - 如何使用应用程序部署 Qt 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34373947/

相关文章:

linker - 如何查看共享库加载顺序

linux - 从一行显示整个单词

java - 多个 SLF4J 绑定(bind) intellij linux

linux - Perl 库版本 (5.10.1) 与可执行版本 (v5.18.4) 不匹配

c++ - 如何使用 Qt 5.7 初始化 stdout stdin

c++ - 共享库和 libpthread.so 的 g++ 问题

c - 如何在单独的线程中更新 GTK+ GUI 的一部分,该线程不断从另一个进程读取数据?

c++ - 声明式 alpha 转换器

c++ - 如何检测 QString 是否由所有数字字符组成?

C 中的交叉编译器二进制兼容性