t --- 位于代码区的符号,一般是static函数
U --- 位于本文件外的调用函数或变量符号,比如系统的printf()函数
这里要注意的是,本人使用g++编译的,所以是按c++的支持重载的函数风格编译的,可以看到所有函数均带了前缀和后缀,前缀代表属于类的名字,后缀代表参数列表的类型缩写,因为重载必须是区分参数类型,这里也可以看出,为什么返回值不同的函数不是重载,因为符号表里没有返回值的记录。
例如两个overload函数的后缀分别是f和i代表一个是float型一个是int型(上面还有v ->void型)。
nm命令对大家调试多模块的程序很有用处,大部分情况下可以解决"undefined reference"的问题,如果大家发现nm的另类很好的用法,也可以留言哈!!!