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

相关推荐
Liuqy-056 天前
TCP与UDP
网络·网络协议·tcp/ip·udp·c
txwtech10 天前
第32篇 应用程序无法正常启动(0xc0000142)。请单击“确定“关闭应用程序故障排查方法vs2019 qt msvc2019
dll·依赖
C++ 老炮儿的技术栈13 天前
机器人的坐标,像 XYZ 的坐标值,是用单精度浮点还是用双精度浮点?
c语言·c++·人工智能·单片机·c
wflynn14 天前
GitHub 今日推荐|gpu-unlock-ada:Ada 显卡张量算力翻倍解锁
开源·github·c
wflynn15 天前
GitHub 今日推荐|dquickts:能暂停、能存档的 QuickJS
开源·github·c·durable-execution·embeddable·hibernation
real_metrix17 天前
【学习笔记】C/C++ 头文件自包含
c++·c·头文件·自包含
闻缺陷则喜何志丹18 天前
计算24点
c·测试·input·output
2601_9555181821 天前
C# 数组 - FindIndex() 方法
c·教程·数组·示例·findindex()
雾沉川22 天前
Visual C++运行库合集 v105.0 安装教程
开发语言·c++·dll
从小白到软工22 天前
3-8 用draw.io来绘制界面*
c