3

我正在使用 Qt Creator (2.1 RC) 在 Linux 中开发 Qt 应用程序。我创建了 2 个项目,并使用向导将库项目添加到应用程序项目中。但是,当我运行它时,我收到错误:

/home/jakepetroules/silverlock/silverlock-build-desktop/desktop/silverlock: error while loading shared libraries: libsilverlocklib.so.1: cannot open shared object file: No such file or directory

是否可以设置一些 qmake 变量,以便 Qt Creator 正确设置环境以运行?必须使用启动器脚本将所有文件复制到另一个目录才能测试构建,这非常烦人。在 Windows 上它可以完美运行 - Qt Creator 在运行您的应用程序时会自动将包含 DLL 的目录添加到 PATH(从资源管理器运行它会说 DLL 未找到)。Mac OS X 更糟,必须在所有东西上运行 install_name_tool ......

那么如何设置我的 qmake 文件,以便一切都可以通过 Qt Creator 中的运行按钮正常运行?没有这种能力也很难调试。

4

3 回答 3

6

我在我的 linux 机器上使用 QTCreator 运行 qt 应用程序时遇到了类似的问题。我通过在客户端应用程序的 .pro 文件中添加以下行来解决它:

unix:LIBS += -L/home/projects/my_libs/ -lmy_lib

unix:{
  QMAKE_LFLAGS += -Wl,--rpath=/home/projects/my_libs/
  QMAKE_LFLAGS_RPATH=
}

rpath 的信息在这里:rpath

希望这会有所帮助,问候

于 2011-01-09T04:31:30.037 回答
5

是的,Creator 有一个部分,您可以在其中设置运行应用程序所需的任何环境。

在 Creator 2.0.0 上,可通过以下方式访问:项目 -> 目标 ->(您的目标)-> 运行 -> 运行环境(打开项目后)

然后,您可以添加或删除您想要的任何环境变量,包括LD_LIBRARY_PATH 我不确定的一件事是是否可以将构建路径替换为这些变量的值,这样您就不必硬编码进入你的LD_LIBRARY_PATH.

另一种选择是将一个小的 shell 脚本添加到您的源代码树中,该脚本设置任何必要的变量,并添加一个“自定义可执行文件”运行配置来运行该脚本。这是通过同一屏幕访问的。

于 2011-01-09T22:51:31.570 回答
1

只需使用这个:

unix:LIBS += -L/home/projects/my_libs/ -lmy_lib
unix:{
  QMAKE_LFLAGS += -Wl,--rpath=/home/projects/my_libs/
}

它也解决了我的问题。

于 2016-09-16T02:33:41.220 回答