0

我有一个包含应用程序中所有 .a 文件的 nm 输出的文件。现在,我如何找出包含指定函数的 .a 。

我擅长 Bash 脚本,并且在 Perl 方面相当胜任,并且可以做一些 Python 和 Ruby。

关于我可以用来执行此操作的脚本语言的任何建议?

问题更新:我有一个使用以下命令创建的文件:

$ find . -name '*'.a > afile_list.log
$ while read line; do echo "$line"; nm $line; done < ./afile_list.log > a_list.log

现在我在代码库中有一个函数 fun1() 。我如何找出哪个 .a 中有这个功能?

4

2 回答 2

2

nm命令有一个选项可以在其输出中打印该信息,从而使跟踪变得微不足道。该选项nm -A包括 Linux、Mac OS X 和 Solaris 上的库名和成员对象文件名(HP-UX 和 AIX 未勾选),符合POSIXnm,这说明了统一性。在某些平台上还有其他选项可以执行类似任务;nm -R例如,在 Solaris 上。

于 2012-10-14T02:48:40.247 回答
0

bash 可以做到这一点。使用while read循环逐行读取文件,每次遇到一个存档名称时都会删除存档名称,并在找到感兴趣的功能时输出最后存储的存档名称。

于 2012-10-14T01:50:18.517 回答