【发布时间】:2012-11-22 06:27:36
【问题描述】:
我正在使用 Suse gcc 编译器编译我的库(C 编程),然后生成该库的 nm 报告。我必须将该 nm 报告与以前的版本库进行比较,以检查当前版本库中存在和不存在的符号。
nm libxxx0.1.a > nm_0.1.txt
nm libxxx0.2.a > nm_0.2.txt
现在我只是用一些文本比较工具比较nm_0.1.txt 和nm_0.2.txt 文件。除了符号差异之外,我也得到了偏移差异。我不担心偏移差异。
是否有任何命令(在 windows 或 suse 中)可以简单地突出显示 nm 报告中的符号差异。
注意:生成的 nm 报告会非常大。手动打开该文本文件并使用某些工具删除该 nm 报告的第一列对于那个大 nm 文件来说不是一件容易的事。
【问题讨论】:
-
对于 SUSE,请查看
diff(man diff)。 -
通过 unix
cut命令删除第一列? -
实际上,
cut在这里表现不佳,因为第一列可以为空。也许nm lib.a | sed 's/.* [a-Z] \(.*\)/\1/' > symbols.txt -
@BoBTFish 实际上,
nm libxxx0.1.a | cut -c20-工作正常。 -
好点。对于非常大的文件,它可能也会比正则表达式快得多。