ldd相关内容

gcc 构建链接,但共享库未与 ldd 一起出现

我有一个必须构建的程序.程序依赖libA,libA依赖libB.两个库都在同一个文件夹中,但 ldd libA.so 不包括 libB.so 所以我必须在链接时添加它. 这是我的 gcc 命令: gcc -L/path/to/libraries/lib -lA -lB -I/path/to/libraries/include main.cpp 程序构建并链接,但没有启动.它给了我 ..
发布时间:2022-01-11 15:39:08 其他开发

linux/gcc:来自 C/C++ 程序内部的 ldd 功能

有没有一种简单有效的方法来知道给定的动态链接 ELF 缺少运行所需的 .so,所有这些都来自 C 的 内部/C++ 程序? 我需要一个功能与 ldd 有点相似的程序,而不是尝试执行 ELF 来找出系统中的(满足/未满足)依赖关系.也许通过某个库询问 ld-linux.so 实用程序?(我是linux这部分的新手=) 注意:阅读 ldd 的源代码对我的意图不是很有帮助:似乎 ldd 实际 ..
发布时间:2022-01-11 15:24:31 服务器开发

ldd 在 android 上等效

我有一个 libTest.so 无法在某些设备上加载.logcat 绝对没用.使用 arm-linux-androideabi-readelf.exe -d libTest.so 我能够看到 libTest.so 需要的所有必需库.我将它们全部拉到本地 PC 上的同一个文件夹中. 如何找出缺少哪些符号以及在哪个库中?我只有 NDK 的标准工具集(nm、readelf、objdump 等).我 ..
发布时间:2022-01-11 00:00:46 移动开发

将 Rust 应用程序与不在运行时链接器搜索路径中的动态库链接

我有一个共享库,我想将其动态链接到几个单独的二进制 Cargo 应用程序中.我使用 -- -L/path/to/dir 格式将它的位置包含在链接器中,应用程序正确编译,二进制大小显着减小.但是,当使用 ldd 检查生成的二进制文件时,我收到一条消息说找不到该库: casey@Gilthar-II:~/bot4/backtester/target/release$ ldd backtesterli ..
发布时间:2021-12-25 09:48:26 其他开发

分层 ldd(1)

由于使用 Gentoo,经常发生更新后程序与旧版本库链接的情况.通常,revdep-rebuild 有助于解决这个问题,但这次它依赖于 python 库,并且 python-updater 不会选择它. 是否有 ldd 的“分层"变体,它向我展示了什么共享库依赖于另一个共享库?大多数情况下,库和可执行文件仅与少数其他共享库链接,而这些共享库又与少数共享库链接,从而将库依赖项变成了一个大列表. ..
发布时间:2021-12-18 23:19:25 服务器开发

“静态链接"和“静态链接"有什么区别?和“不是动态可执行文件"来自 Linux ldd?

考虑这个 AMD64 汇编程序: .globl _start_开始:xorl %edi, %edimovl $60, %eax系统调用 如果我用 gcc -nostdlib 编译它并运行 ldd a.out,我得到这个: 静态链接 如果我改为使用 gcc -static -nostdlib 编译它并运行 ldd a.out,我会得到: 不是动态可执行文件 静态链接和非动态可执行文件 ..
发布时间:2021-12-18 22:55:06 服务器开发

使用 RPATH 构建 OpenSSL?

我有 Ubuntu 14.04.它带有 openssl 1.0.1f.我想安装另一个openssl版本(1.0.2),我想自己编译它. 我是这样配置的: LDFLAGS='-Wl,--export-dynamic -L/home/myhome/programs/openssl/i/lib-L/home/myhome/programs/zlib/i/lib'CPPFLAGS='-I/home ..
发布时间:2021-12-03 13:50:02 服务器开发

如何使用调试版的 libc

问题的简短版本:如何让 gdb 使用 libc 的调试符号? 更长的版本:我正在使用 gdb 调试程序,我想查看有关 libc 使用的 futex 的信息.但是,在调试过程中的某个时刻,我得到如下输出: Catchpoint 2(调用 syscall futex),0x00007ffff772b73e in ??() 来自/lib/libc.so.6(gdb) bt#0 0x00007ff ..
发布时间:2021-12-03 13:47:18 服务器开发

交叉编译器ldd

我创建了一个交叉编译的 arm 可执行文件.我想找到可执行文件的库依赖项.我正在使用 ubuntu natty 并安装了 arm-linux-gnueabi 工具链,其中不包含 ldd.有没有可以查看linux中arm可执行文件库依赖的工具. 解决方案 这有点麻烦,但它是我能找到的最好的解决方案,而且它对于基本使用确实非常有效 - 只需将此脚本保存为"arm-none-linux-gnue ..
发布时间:2021-11-17 21:42:23 服务器开发

有没有一种方法可以确定Linux上的库使用的线程本地存储模型

在Linux上是否可以查询共享库的TLS模型? (例如,使用ldd或其他工具). 我在使用"initial-exec"模型加载太多库时遇到麻烦,并且想确定哪些第三方库使用此模型(因此我可以释放一些插槽,例如通过静态链接) 这会导致错误: dlopen: cannot load any more object with static TLS 请参见此问题. 解决方案 ..

我需要列出在UNIX/Linux中链接了指定共享库的程序(例如ldd,反之亦然)

UNIX/Linux中的 ldd命令列出了程序的所有动态链接的库. 如何确定相反的问题: 链接到指定共享库的程序列表是什么? 我需要一种获取使用"libz"的程序列表的方法. 有命令吗? 解决方案 我非常怀疑会不会出现这种情况.这将需要保留所有可执行文件的数据库,并记住它们所依赖的内容,如果仅从特定渠道安装软件,则可能会发生这种情况,但如果使用其他软件,则肯定无法跟踪 ..
发布时间:2020-06-29 19:45:20 服务器开发

什么是ldd的c语类似物?

如何找出可执行文件所依赖的DLL? 在具有GNU开发工具链(gcc& c)的系统上,我使用ldd进行操作,但是clang系统如何处理,例如Mac OS X(不会执行 有ldd)吗? 解决方案 在Mac OSX上,您将使用otool -L而不是ldd.无论您使用什么编译器,此方法都有效.其他操作系统可能还具有其他工具.例如在Windows上,您将使用Dependency Walker. ..
发布时间:2020-06-29 19:45:14 其他开发

libm.so.6:无法打开共享库文件:没有这样的文件或目录

我已经在Centos 6.8中安装了一个程序,在运行该程序时,我收到错误消息 “加载共享库时出错:libm.so.6:无法打开共享库文件:没有这样的文件或目录" 当我使用ldd命令检查到程序的链接库时,可以看到具有正确64位的libm.so.6 "libm.so.6 =>/lib64/libm.so.6(0x0000003a19000000)" 这意味着,库已安装并且已经添加到环境变量LD_LIB ..
发布时间:2020-06-29 19:45:10 其他开发

ldd在LD_LIBRARY_PATH中找不到库

我正在尝试启动和运行系统,并且在OpenMotif共享库方面遇到问题.我的目录位于LD_LIBRARY_PATH,但仍然找不到它们. 这是一个例子: [root@intrepid netcool]# ldd /opt/netcool/omnibus/platform/linux2x86/bin/nco_* |grep 'not found' libXm.so.3 => not ..
发布时间:2020-06-29 19:45:03 服务器开发

如何在编译时删除"GLIBC_2.27"要求?

我一直在使用docker映像进行c ++编译.它基于Ubuntu 18.04.当我尝试在某些Ubuntu 16系统上运行时,出现以下消息: /lib/x86_64-linux-gnu/libm.so.6:未找到版本"GLIBC_2.27" 我将在下面发布完整的ldd输出.我喜欢使用较新的编译器.我宁愿不使用较旧的Linux基本映像进行编译(但如有必要,我会这样做).我静态链接了大多数库 ..
发布时间:2020-06-29 19:45:00 其他开发