1

我正在开发一个非常复杂的 Linux 驱动程序。我正在移动一些文件以尝试“减少脂肪”。我有 4 个“未定义!” 链接阶段的符号。我搜索了我的源代码,但我真的不知道这些符号包含在哪里。

我想,如果我objdump -DS对我编译的 .ko 进行了搜索并搜索了这些符号,我可能能够从周围的反编译源中分辨出它们来自哪里。但是,当我搜索符号时,它们甚至都找不到!

有没有办法告诉 WHERE 或如何包含未定义的符号?

4

1 回答 1

2

好的,我想出了一个很好的方法来做到这一点。

我曾经nm -u从我的目标文件中列出未定义的符号。(.o文件)

nm - 列出目标文件中的符号

逐个执行此操作.o并搜索我知道未定义的符号,向我展示了它们来自哪个文件。然后我就有了一个起点,可以在我的实际.c文件中找到符号,或者从该文件中找到一个头.c文件。

现在它不是大海捞针,而是从干草堆上折断的干草中的一根针。

于 2013-10-25T22:14:04.507 回答