使用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 可以按大小排序输出。

相关推荐
s__77718 小时前
详细探索xinput1_3.dll:功能、问题与xinput1_3.dll丢失的解决方案
dll·dll修复工具·dll修复·dll丢失·dll文件丢失·dll解决
理论最高的吻1 天前
98. 验证二叉搜索树【 力扣(LeetCode) 】
数据结构·c++·算法·leetcode·职场和发展·二叉树·c
时光の尘1 天前
C语言菜鸟入门·关键字·void的用法
c语言·开发语言·c++·算法·c#·c·关键字
神一样的老师2 天前
C/C++ 优化,strlen 示例
c
zhuqiyua3 天前
深入解析Kernel32.dll与Msvcrt.dll
汇编·microsoft·windbg·二进制·dll
万物复苏1014 天前
【汇编】c++游戏开发
开发语言·笔记·游戏·c
石牌桥网管6 天前
用正则表达式检查是IP否为内网地址
java·c++·golang·正则表达式·php·c
Koishi_TvT7 天前
蓝桥杯c++算法学习【3】之思维与贪心(重复字符串、翻硬币、乘积最大、皮亚诺曲线距离【难】:::非常典型的必刷例题!!!)
c++·学习·算法·游戏·贪心算法·蓝桥杯·c
电脑修复X7 天前
计算机提示msvcr120.dll丢失怎样修复?六种有效将丢失的msvcr120.dll解决方法
dll文件·dll·dll修复·dll丢失
Ustinian_31010 天前
【C++】 C++游戏设计---五子棋小游戏
c