Linux中的持久库搜索路径

4
我想要在全局范围内更改LD_LIBRARY_PATH变量,以使用一些放置其共享库于自定义目录的奇怪第三方SDK。所以,我在/etc/profile.d中添加了这样的脚本:
LD_LIBRARY_PATH=/usr/local/ebus_sdk/lib/genicam/bin/Linux64_x64:/usr/local/ebus_sdk/lib/qt/lib:/usr/local/ebus_sdk/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
重新启动后,在命令行中输入以下内容:
alex@alex-64:~$ echo $LD_LIBRARY_PATH
.
因此,这种方法不起作用。是否有其他方法将这些目录添加到库搜索路径中?
2个回答

4

大多数Linux发行版会要求您将一个文件添加到/etc/ld.so.conf.d目录中,其中包含要搜索库的路径。这是像rpmdpkg这样的安装程序安装和卸载软件包的系统更改的便捷方式。


1
是的,这就是我最终所做的。我的问题是只有在执行lgconfig之后才开始工作。 - Alex F
@AlexF:是ldconfig,不是lgconfig。谢谢你的提示! - Violet Giraffe

3

尝试将这两行合并成一行:

export LD_LIBRARY_PATH=/usr/local/ebus_sdk/lib/genicam/bin/Linux64_x64:/usr/local/ebus_sdk/lib/qt/lib:/usr/local/ebus_sdk/lib:$LD_LIBRARY_PATH

编辑
检查一下某些配置文件是否未覆盖LD_LIBRARY_PATH。典型的候选文件是~/.profile~/.bashrc(或适用于您的shell类型的文件)。


是的,bashrc会覆盖LD_LIBRARY_PATH。现在我认为使用LD_LIBRARY_PATH不是一个好主意,而是尝试修改/etc/ld.so.conf(目前还没有成功)。无论如何,原始问题已经得到了回答,谢谢。 - Alex F

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接