我正在使用Susegcc
编译器编译我的库(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文件来说不是一项容易的任务。
最佳答案
这是Linux版的。你必须先准备和整理你的纳米输出
nm -g libxxx0.1.a | awk '{print $3}' | sort -u >nm_0.1.txt
nm -g libxxx0.2.a | awk '{print $3}' | sort -u >nm_0.2.txt
如果您对所有符号都感兴趣,请省略
-g
并使用cut
而不是awk
nm libxxx0.1.a | cut -c20- | sort -u >nm_0.1.txt
nm libxxx0.2.a | cut -c20- | sort -u >nm_0.2.txt
然后您可以用
diff
显示这些差异diff -U0 nm_0.1.txt nm_0.2.txt
或
comm
comm -3 nm_0.1.txt nm_0.2.txt
关于c - 验证nm报告中符号更改的简便方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13706127/