从静态库中提取函数名称

问题描述 投票:15回答:3

我有一个静态库static_library.a

如何列出那里实现的功能和方法。或者至少如何看待“FUNCTION_NAME”实现的具体功能?

unix extraction static-libraries
3个回答
31
投票

nm static_library.a

这将为您提供库中符号的完整列表。


13
投票

如上所述使用nm <library>

如果这是一个用C ++构建的库,你应该使用nm --demangle选项来获取原始符号名称而不是它们的“受损”版本。


1
投票

nm命令提供有关在目标文件或可执行文件中使用的符号的信息。

$ nm <object file or executable name>

输出看起来像

libObjCUtils.a(GFICClassA.o):
0000000000000000 t +[GFICClassA GFICclassMethod1::]
00000000000001d0 t -[GFICClassA GFICGlobalPropertyNSString1]
00000000000000b0 t -[GFICClassA GFICinstanceMethod1::]

你可以找到样品here

nm命令提供的默认信息是:

  • 符号的虚拟地址
  • 描述符号类型的字符。如果字符是小写,则符号是本地的,但如果字符是大写,则符号是外部的
  • 符号的名称

标识符号类型的字符描述:

  • 答:全球绝对符号。
  • a:局部绝对符号。
  • B:全球bss符号。
  • b:本地bss符号。
  • D:全局数据符号。
  • d:本地数据符号。
  • f:源文件名符号。
  • L:全局线程局部符号(TLS)。
  • l:静态线程局部符号(TLS)。
  • T:全局文本符号。
  • t:本地文本符号。
  • U:未定义的符号。

阅读更多here

© www.soinside.com 2019 - 2024. All rights reserved.