问题标签 [ldd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unix - ldd 在 LD_LIBRARY_PATH 中找不到库
我正在尝试启动并运行系统,但 OpenMotif 共享库有问题。我在 LD_LIBRARY_PATH 中有他们的目录,但仍然找不到它们。
这是一个例子:
我可能在做一些愚蠢的事情,但我想不出还有什么可以尝试的。
编辑:回答下面提出的几个问题:
好的,只是尝试运行其中一个可执行文件:
这是 32 位/64 位的东西吗?
gdb - 监控linux动态库
我想监视(调试)一个用 C 语言编写的 linux 动态库。
我想看看何时以及将哪些参数传递给它。
监视“X”的库由另一个动态库“Y”调用。
“X”和“Y”都出现在可执行文件“A”的 /proc/pid/maps 中。
使用 ltrace,在可执行文件上没有显示 lib X 或 Y。
可执行文件正在使用多个线程。
此外,当在 exec 上使用 ldd 命令时,它没有提及任何关于 libs X 或 Y 的内容
。ldd Y,表明 Y 需要 X。
在所有库上使用 ldd,项目中的 exec 没有提到任何需要 Y 的人。
但 Y 似乎已加载到 exec 的 /proc/pid/maps 中。
我不确定我可以采取哪些步骤来调试 X lib,不胜感激。
security - 如何获取库/可执行文件的可执行代码部分的大小?
我正在分析各种代码库的可执行文件大小,并且我正在寻找有关库或可执行文件的可执行部分有多大的数据。我知道我可以通过查看来获得一个想法/proc/xxx/maps
,但是有什么可以明确告诉我的吗?
linux - ldd 和 objdump 有什么区别?
我正在运行这两个命令,并且得到不同的输出:
进而
那是怎么回事?我以为他们都给了库依赖项?我关心的原因是我怀疑ldd
是正确的,但我正在ARM上的linux上工作,我可以告诉我没有ldd......
makefile - 如何在不安装的情况下使用正确的库路径重新链接 libtool 构建的可执行文件?
A 有一个使用 GNU 自动工具构建的项目。现在我有一个微小的变化,只想从整个集合中复制一个库 libmylib.so
和一个程序(使用该库)。 myprog.x
我不想使用make install
,因为我必须非常小心不要覆盖所有其他东西。
当我做
我看到使用的库 - 正如预期的那样 - 新构建的库,而不是/usr/lib/
.
我怎样才能告诉make
或libtool
重新链接 myprog.x
,以便我可以手动将其复制到/usr/bin/
?当然是复制libmylib.so
到之后/usr/lib/
。
shared-libraries - 如何将共享库搜索路径添加到可执行文件?
我用 librtmp 构建了 ffmpeg。我的 librtmp 位于 /opt/librtmp/lib。当我执行ffmpeg时,它说:
我使用 ldd 命令显示未找到:
我知道我是这样的:
我找到了几种解决问题的方法
- 修改/etc/ld.so.conf,但需要超级用户
- 设置 LD_LIBRARY_PATH 变量,但对用户不方便
- 像这样将 rpath 传递给 gcc
为我的 ffmpeg 配置参数
假设没有源代码要重新编译?如何将共享库搜索路径添加到可执行文件?
ubuntu - ldd 不同的输出。相同的二进制不同的发行版
在运行该ldd
实用程序以查找 的共享库时httpd
,我发现了以下我无法解释的场景:
在我的Ubuntu
盒子上:
在一个CentOS
盒子上:
为什么libuuid和libfreebl3列在CentOS
盒子上但没有列在Ubuntu
盒子上?
我知道httpd ELF
没有将它们列为依赖项:
有什么见解吗?
编辑:两个测试中使用的 httpd 二进制文件是相同的(我从 CentOS RPM 解压出来的)。
linux - ldd 会打印运行时使用的所有 .so 文件吗?
我曾经在 Linux 上看到一个二进制文件(比如 xyz),当它运行时,我可以看到它加载了一个 .so 文件(比如 abc.so),但是当我运行“#ldd xyz”时,不包含 abc.so在ldd的输出中。
谁能帮忙解释一下?
提前致谢!
linux - ldd 括号内的十六进制数
在文件上执行ldd
时,它会在找到的每个库的括号中返回一个十六进制数字。
例如:
如果十六进制数不是可执行文件曾经链接的库之一,则可能会出现版本信息错误。
我有两个问题:
- 这个价值从何而来?
- 如何找出可执行文件正在寻找的十六进制值?(即它最初链接的那个)
unix - 库依赖工具
我正在寻找平台上的/tool
来检测和文件的依赖关系。command
Unix
library
.so
.o
我已经使用了ldd
// nm
,truss
但我不知道检测库依赖关系的正确方法。