nm是names的缩写, nm命令主要是用来列出某些文件中的符号(说白了就是一些函数和全局变量等)。 一般来说, 搞linux开发的人, 才会用到nm命令, 非开发的人, 应该用不到。
语法格式: nm [参数]
常用选项:
-A | 每个符号前显示文件名 |
-D | 显示动态符号 |
-g | 仅显示外部符号 |
-r | 反序显示符号表 |
参考实例
显示hello.o 中的未定义符号,需要和其他对象文件进行链接:
[root@linuxvip ~]# nm -u hello.o
在/usr/lib/ 目录下找出哪个库文件定义了memset函数:
[root@linuxvip ~]# nm -A /usr/lib/* 2>/dev/null | grep "T memset"
显示nm的版本号:
[root@linuxvip ~]# nm -v
显示调试符号:
[root@linuxvip ~]# nm -a hello.o