c - 如何找到给定库名称(如 libfoo.so.1)的完整文件路径?

标签 c linux linker

在不实现链接器或不使用 ldd 的情况下,如何找到库的完整路径?在 Linux 上有可用的标准库吗? (可能是 POSIX?)

在故意使用 libGL.so.1 的文件上使用 lddgrep,它看起来像:

$ ldd /usr/bin/glxinfo | grep libGL
libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f34ff796000)

给定像 libGL.so.1 这样的库名称,我如何才能找到完整路径 /usr/lib/libGL.so.1。最好接受用于​​查找 32 位和 64 位库的选项。如果没有图书馆这样做,是否存在这样做的程序?类似于 find-library-path libGL.so.1locate libGL.so.1 命令不算在内。

如果它从该库执行代码,我不想使用 dlopen 或其他东西实际加载库。

最佳答案

使用ldconfig这是管理链接空间的工具。

-p 标志允许您浏览所有可用的可链接库。

关于c - 如何找到给定库名称(如 libfoo.so.1)的完整文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13148608/

相关文章:

c - C 结构编程

linux - 如果条件未检测到运算符

linux - Bash:查找两个文件之间哪些行没有改变

c - 在c中链接具有多个主要功能的文件

c - 创建共享库时,如何告诉链接器可执行文件中存在符号?

c - ANSI C - 右上三角矩阵的数值稳定回代算法

c - 在没有内置函数或程序集的情况下在 C 中实现 setjmp 和 longjmp(获得不正确的返回值)

c - (int_1 += *pointer++ = int_2++) < int_3 是什么意思?

带参数的 C++ 简单线程(无 .net)

macos - 如何解决我在尝试将 C++ 与 Assembly 链接时遇到的这个链接器错误?