使用QT创建者在UNIX系统中开发QT应用程序
-
08-10-2019 - |
题
我正在使用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/
}
它也打破了我的问题。