我正在使用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创建者可以正确设置环境以运行?为了能够测试构建,必须将所有文件复制到另一个目录是非常烦人的。在Windows上它可以完美地工作 - QT Creator会在运行您的应用程序时自动将包含DLL的目录添加到路径上(从Explorer运行它,请说找不到DLL)。 Mac OS X甚至更糟,必须在所有内容上运行install_name_tool ...

那么,如何设置QMAKE文件,以便从QT创建者中的运行按钮中正常工作?没有这种能力也很难进行调试。

有帮助吗?

解决方案

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

在Creator 2.0.0上,这是通过:projects-> targets->(您的目标) - >运行 - >运行环境(打开项目之后)

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

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

其他提示

我在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

希望这会有所帮助

只是使用以下方式:

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

它也打破了我的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top