Nm 命令输出

Nm 命令输出

nm静态库文件()的命令格式是什么*.a?该命令如何输出其信息?我之所以问这个问题,是因为我使用它与head命令得到了奇怪的结果。当我仅发出 nm 时:

nm -D /usr/lib/x86_64-linux-gnu/libg.a

我有:

...
dummy.o:
nm: dummy.o: no symbols

但是当我将 mn 的结果传送到 head 命令时:

nm -D /usr/lib/x86_64-linux-gnu/libg.a | head -n 2

我得到:

nm: dummy.o: no symbols
...
dummy.o:

(其中...表示仅空行)这是很奇怪的,而我期望的只是:

...
dummy.o:

(仅前两行 - 第一行 - 空,第二行dummy.o:

grepPS.当我通过管道传输或xargs命令时,我也得到了同样的效果。

答案1

可能是因为 .a 是ar档案。要列出此档案中的文件:

$ ar t /usr/lib/x86_64-linux-gnu/libg.a                                                                                                              
dummy.o

你可以使用以下命令从 libg.a 中提取 dumy.o

ar x /usr/lib/x86_64-linux-gnu/libg.a dummy.o

但你还是找不到任何符号。也许根本就没有符号可找?

$ nm dummy.o                                                                                                                                         
0000000000000000 T __dummy__

相关内容