【发布时间】:2019-07-14 15:22:25
【问题描述】:
我有一个小型开源程序,它编译为 apache 的共享模块,但是当 apache 尝试加载它时,它拒绝加载,抱怨:“未定义的符号:ap_log_rerror”。
在共享库上运行ldd 会生成一个包含大约十几个依赖项的列表,所以这些是我知道未定义函数的那些。我该如何寻找提供此功能的库?
我的问题不是如何列出符号——我知道如何用 nm 做到这一点。我的问题是在哪里可以找到包含我想要的符号的文件?是否有任何有效、简单的方法来识别正确的文件?
更新:我通过重新编译我的程序来解决这个问题。所以它现在加载,尽管我的核心问题仍未得到解答。
【问题讨论】:
-
不,这是一个不同的问题。在那个问题中,OP 想知道哪些符号没有定义。我想知道 在哪里可以找到 定义了上述符号 的文件。
-
@tink 这有帮助。无论如何,我最终重新编译,这解决了我的问题。但了解该函数的定义位置很有用。谢谢。
-
您可能希望在
ldd的输出中提到的文件上使用nm(1)
标签: linux compilation shared-libraries