微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

请有人可以在初学者的语言解释什么是LD_LIBRARY_PATHUNIX?

我刚刚在Ubuntu上安装了SPIKEfile(fuzzer),它说:

现在您需要设置您的LD_LIBRARY_PATH以包含libdisasm.so的path和libdlrpc.so的path

“printenv”显示没有这样的variables存在。

有人能请初学者向我解释这实际上是什么意思,以及如何解决这个问题。 我是一个相当缺乏经验的Linux用户。 提前致谢。

为2.4.0内核,i586架构构build二进制(telnet)

为linux构build可执行文件

从未初始化的内存读取返回不同的答案每次

在Linuxterminal上出现颜色特定的字

在linux中符号^ 是什么意思?

PS我发现网上的大部分东西是无益的,我宁愿不复制粘贴不知道我在做什么。

为什么包含带有外部variables和funcs的h文件会导致未定义的引用

`os.symlink` vs`ln -s`

rsyslog EscapeControlCharactersOnReceive无法在omfwd模块中工作?

在Linux内核3.3中添加一个新的系统调用

使用xargs启动并行networking任务,同时最小化上下文切换开销

Linux有共享库的概念,即没有被烧入可执行文件代码库,而是在程序执行时被动态链接。 可执行文件只包含对所需库名称的引用。

LD_LIBRARY_PATH是一个环境变量,它列出了Linux加载时链接程序在查找这些库时应使用的额外路径。 这只是一个以冒号分隔的表格

/path/to/somewhere:/path/to/somewhere_else:/path/to/narnia

假设你正在使用Bash,你可以执行以下操作来在列表中添加额外的路径(即使$LD_LIBRARY_PATH初始化为空或者未设置,这也可以工作):

export LD_LIBRARY_PATH=/path/to/dir/containing/libdisasm.so:$LD_LIBRARY_PATH

(和libdlrpc.so类似)。

我在Solaris下使用LD_LIBRARY_PATH,因为有时踢脚本似乎有些库缺少。 在脚本开始时设置这个变量只是解决这个问题的一个更安全的方法

值得一提的东西(可能是你在找什么):

ldd /path/to/narnia export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/dir/containing/lib

(这样做不会丢失以前设置的目录)

再次使用命令时应该如何工作:

ldd /path/to/narnia librt.so.1 => /lib/librt.so.1 (0x00002b4eca08e000) libc.so.6 => /lib/libc.so.6 (0x00002b4eca49f000) libpthread.so.0 => /lib/libpthread.so.0 (0x00002b4eca7df000) /lib64/ld-linux-x86-64.so.2 (0x00002b4ec9e72000) libmylib.so.1 => ~/myprogdir/lib/libmylib.so.1 (0x00002b4eca9fa000)

如果仍然无法找到lib,请确保在用户配置文件添加设置:

# vi .bash_profile

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐