【发布时间】:2017-01-18 06:05:47
【问题描述】:
我创建了一个示例项目来测试我在 Linux Ubuntu 中的动态库 (.so)。
程序在从终端启动时正确编译并运行。它按预期工作 - 在终端 ./Main 中找到所有依赖项和函数。
从 QT(构建/运行)中启动时,出现错误: Cannot open a_dependent_library.so: cannot open shared object file: No such file or directory
我的环境变量LD_LIBRARY_PATH包含a_dependent_library.so所在的目录
请指教。
【问题讨论】:
-
$LD_LIBRARY_PATH是否设置在 QtCreator 启动的环境中?或者,您可以在 Project -> Kit / Run 中设置它 -
我已经有一个 cmake 文件,使用它我正在创建 Qt 项目。有没有办法在 cmake 中设置 LD_LIBRARY_PATH ? (我假设它应该选择 a_dependent_library.so 本身,因为它的目录已经在 LD_LIBRARY_PATH 中)
-
我在 cmake 文件中尝试了这个:link_directories(../lib) (这只适用于绝对路径,我最好不要这样做)然后在 target_link_libraries 中使用 -la_dependent_library 解决了错误,但使用仅限绝对路径
-
不确定 cmake 与环境有什么关系,它会生成您的构建文件。你说你设置了
$LD_LIBRARY_PATH,但也许这只是在你正在执行程序的shell中
标签: qt ubuntu environment-variables .so