nm是names的缩写, nm命令主要是用来列出某些文件中的符号(说白了就是一些函数和全局变量等)。 一般来说, 搞linux开发的人, 才会用到nm命令, 非开发的人, 应该用不到。

语法格式: nm [参数]

常用选项:

-A每个符号前显示文件名
-D显示动态符号
-g仅显示外部符号
-r反序显示符号表

参考实例

显示hello.o 中的未定义符号,需要和其他对象文件进行链接:

[root@linux-arae-cc ~]# nm -u hello.o 

在/usr/lib/ 目录下找出哪个库文件定义了memset函数:

[root@linux-arae-cc ~]# nm -A /usr/lib/* 2>/dev/null | grep "T memset" 

显示nm的版本号:

[root@linux-arae-cc ~]# nm -v

显示调试符号:

[root@linux-arae-cc ~]# nm -a hello.o