c - 我怎样才能找出哪个图书馆是给定对象的所在地?

标签 c unix linker fortran sgi

我在运行 Irix 6.5 的 SGI 上用 FORTRAN 和 C 编程,但这应该适用于所有类 Unix 系统。当我收到“未解析的文本符号”链接错误时,如何找到我需要链接到我的程序的库?这是我从链接器中看到的示例:

ld32: ERROR  33 Unresolved text symbol "ortho2_" -- first referenced by ./libfoo.a

我是否只需要知道需要哪些库,或者是否有一些工具或命令可以帮助我解决这个问题?

最佳答案

您可以使用 nm 命令列出共享库中的动态符号:

nm -D /lib/libc.so.6

然后 grep 找到您要查找的符号。省略静态库的 -D。您可以在循环中或与 xargs 一起使用它来扫描多个库。

我通常只使用谷歌(假设该符号来自公开可用的图书馆)。

关于c - 我怎样才能找出哪个图书馆是给定对象的所在地?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/290799/

相关文章:

python - 在没有环境变量的配置文件中设置 python 搜索路径(即 PYTHONPATH)

c - 链接到外部 C 库的 R 包

c++ - 使用与其他共享库链接的共享库

c - 编程数据类型

c - 从函数返回指针数组

linux - 是否可以授予 'person A' 读/写访问权限和 'Person B' 只读访问权限

boost - boost::hash_combine 链接哪个库

c - 在 read() 之后使用 getchar()

c - 使用 fwrite() 删除数据

linux - 在列中打印以空格分隔的列表