qt - 如何设置 Qt 应用程序在哪里找到 Qt 模块?

标签 qt makefile dynamic-linking

我想将 libQtGui.so.4 libQtNetwork.so.4 和 libQtCore.so.4 包含在与我的应用程序所在的目录相同的目录中。我如何让 Qt 理解这一点? y 目的是拥有一个使用共享库的独立应用程序

最佳答案

设置 LD_LIBRARY_PATH 环境变量是一种选择。例如:

export LD_LIBRARY_PATH=/path/to/dir/with/libs:$LD_LIBRARY_PATH

另一种选择是在链接期间设置 Qt 应用程序的 RPATH。将 RPATH 设置为值“$ORIGIN”将导致动态链接器在运行时查看与 Qt 应用程序相同的目录。例如,如果使用 qmake,请将以下代码段添加到您的项目文件中:
unix:!mac{
  QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN
  QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/lib
  QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/libs
  QMAKE_RPATH=
}

这会将 RPATH 设置为“$ORIGIN:$ORIGIN/lib:$ORIGIN/libs”,这意味着动态链接器将首先查看 Qt 应用程序的位置,然后查看其位置的 lib 子目录,然后查看 libs子目录在其位置,最后在任何系统定义的位置。

关于qt - 如何设置 Qt 应用程序在哪里找到 Qt 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2497192/

相关文章:

objective-c - 使用 Qt 4.5 时如何修复应用程序泄漏?

c++ - 对构造函数调用的约束

qt - 使用 QStyledItemDelegate 子类在 QTableView 中创建 PushButtons

python - 菜单和 QtOpenGL.QGLWidget 之间的空间

makefile - make-在同一个eval调用中定义多个变量

c++ - 如何在 CMakeList.txt 中链接 -ldl

makefile - 我们可以使用相对路径在 GNU Makefile 中包含另一个 Makefile 吗?

c++ - Windows - 动态加载库 C++

c++ - 混合静态和动态(共享)库?

c++ - libmpc-dyld : Library not loaded - Reason: image not found