使用nm查看.a文件时函数列表前方的前缀T、U等含义

在使用 nm 命令查看 .o 对象文件时,输出中的函数名或其他符号前缀有特定的含义:

  • T:表示该符号是一个文本(Text)符号,通常用于代码段(code section)。这意味着它是一个程序的代码入口点,比如一个函数的开始地址。

  • D:表示该符号是一个数据(Data)符号,通常用于初始化数据段(initialized data section)。这通常指的是全局变量或静态变量。

  • B:表示该符号是一个未初始化的全局或静态变量,位于未初始化数据段(BSS section)。

  • R:表示该符号是一个只读数据符号,通常用于只读数据段(read-only data section)。

  • C:表示该符号是一个常量(Constant),通常用于常量数据段。

  • U:表示该符号是未定义(Undefined)的,也就是说它在当前的 .o 文件中声明了,但是没有定义。这通常意味着它可能在其他 .o 文件或库中定义。

  • W:表示该符号是一个弱引用(Weak),它允许在其他编译单元中有相同名称的符号覆盖这个符号。

  • A:表示该符号是一个绝对地址的符号。

  • I:表示该符号是一个调试信息(Debugging)符号。

  • N:表示该符号是一个非标准(Non-standard)符号。

在使用 nm 命令时,你可以通过添加不同的选项来改变输出格式或过滤输出结果。例如,nm -D 可以以十六进制的形式显示地址,nm -S 可以按大小排序输出。

相关推荐
梁辰兴1 天前
数据结构:排序
数据结构·算法·排序算法·c·插入排序·排序·交换排序
charlie1145141912 天前
Windows 编程——字符串处理
windows·学习·c·字符串处理·windows编程
板栗栗-73 天前
从根源破解“找不到 vcruntime140.dll 无法执行”问题:原因分析、安全修复工具推荐及预防指南
安全·dll·dll修复工具·dll修复·dll错误
BlackQid3 天前
基于C的扫雷小游戏
游戏·c
牟同學4 天前
从竞态到原子:pread/pwrite 如何重塑高效文件 I/O?
linux·网络编程·c·多线程
板栗栗-75 天前
设计软件启动失败?“找不到vcruntime140.dll,无法继续执行代码” 场景化解决方案来了
dll·dll修复·dll错误·dll缺失·dll解决工具
studytosky6 天前
C语言数据结构之双向链表
c语言·数据结构·c++·算法·链表·c
BlackQid7 天前
基于C的二分查找和查月份天数小程序
算法·c
板栗栗-77 天前
笔记本电脑频繁出现 vcomp140.dll丢失怎么办?结合移动设备特性,提供适配性强的修复方案
电脑·dll·dll修复工具·dll修复·dll错误·dll解决工具
小牛历险记8 天前
手表--带屏幕音响-时间制切换12/24小时
c语言·开发语言·c·学习方法