【问题标题】:Persistent library search path in LinuxLinux 中的持久库搜索路径
【发布时间】:2012-07-08 03:57:15
【问题描述】:

我想全局更改 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 导出 LD_LIBRARY_PATH

重启后,我在命令行中输入:

alex@alex-64:~$ echo $LD_LIBRARY_PATH .

所以,这种方式行不通。有没有其他方法可以将这些目录添加到库搜索路径中?

【问题讨论】:

    标签: linux shared-libraries


    【解决方案1】:

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

    【讨论】:

    • 是的,这就是我最终所做的。我的问题是它只有在执行 lgconfig 后才开始工作。
    【解决方案2】:

    尝试将两条线放在一起:

    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 不是一个好主意(目前,没有成功)。无论如何,原始问题已得到解答,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 2017-01-15
    相关资源
    最近更新 更多