Unix 从静态库中提取函数名

Unix 从静态库中提取函数名,unix,extraction,static-libraries,Unix,Extraction,Static Libraries,我有一个静态库静态库 如何列出在那里实现的函数和方法。 或者至少如何看待是否实现了具体的函数“函数名”?Write nm static_library.a 这将提供库中符号的完整列表。使用前面提到的nm 如果这是一个由C++构建的库,则应该使用 NM——DimoLe/Cuff>选项来返回原始符号名称而不是其“已损坏”版本。 < P>列出对象文件的符号。 $ nm <object file or executable name> 输出由电子部件、地址、类型(内部或外部符号)名称和

我有一个静态库静态库

如何列出在那里实现的函数和方法。 或者至少如何看待是否实现了具体的函数“函数名”?

Write

nm static_library.a
这将提供库中符号的完整列表。

使用前面提到的
nm

如果这是一个由C++构建的库,则应该使用<代码> NM——DimoLe/Cuff>选项来返回原始符号名称而不是其“已损坏”版本。

< P>列出对象文件

的符号。
$ nm <object file or executable name>
输出由电子部件、地址、类型(内部或外部符号)名称和

libObjCUtils.a(GFICClassA.o):
0000000000000000 t +[GFICClassA GFICclassMethod1::]
0000000000000290 t -[GFICClassA .cxx_destruct]
00000000000001d0 t -[GFICClassA GFICGlobalPropertyNSString1]
0000000000000230 t -[GFICClassA GFICLocalPropertyNSString2]
00000000000000b0 t -[GFICClassA GFICinstanceMethod1::]
00000000000001a0 t -[GFICClassA GFICprintHelloWorld]
00000000000001f0 t -[GFICClassA setGFICGlobalPropertyNSString1:]
0000000000000250 t -[GFICClassA setGFICLocalPropertyNSString2:]
00000000000002e8 S _GFIC_GLOBAL_EXTERN_CONST_INT_1
00000000000002f0 S _GFIC_GLOBAL_EXTERN_CONST_NSInteger_1
0000000000000538 S _GFIC_GLOBAL_EXTERN_CONST_NSString_1
0000000000000540 s _GFIC_LOCAL_STATIC_CONS_1
00000000000008a8 S _OBJC_CLASS_$_GFICClassA
0000000000000658 S _OBJC_IVAR_$_GFICClassA._GFICGlobalPropertyNSString1
0000000000000660 S _OBJC_IVAR_$_GFICClassA._GFICLocalPropertyNSString2
0000000000000880 S _OBJC_METACLASS_$_GFICClassA
00000000000006b0 s l_OBJC_$_CLASS_METHODS_GFICClassA
0000000000000718 s l_OBJC_$_INSTANCE_METHODS_GFICClassA
00000000000007c8 s l_OBJC_$_INSTANCE_VARIABLES_GFICClassA
0000000000000810 s l_OBJC_$_PROP_LIST_GFICClassA
0000000000000838 s l_OBJC_CLASS_RO_$_GFICClassA
00000000000006d0 s l_OBJC_METACLASS_RO_$_GFICClassA

可以找到样本

不是C++,而是C,所以编译器是GCC。没有——demangle也没关系。考虑到下一次,tnx。你为什么使用libObjCUtils.a?@AdelaToderici,你有什么建议
.a
是一个静态库
//GFICClassA.m
#import "GFICClassA.h"

// Declare global constants
int const GFIC_GLOBAL_EXTERN_CONST_INT_1 = 1;

NSInteger const GFIC_GLOBAL_EXTERN_CONST_NSInteger_1 = 1;
NSString *const GFIC_GLOBAL_EXTERN_CONST_NSString_1 = @"GFIC_GLOBAL_EXTERN_CONST_NSString_1_value";

// Declare local constants
static NSString *const GFIC_LOCAL_STATIC_CONS_1 = @"GFIC_LOCAL_STATIC_CONS_1_value";

@interface GFICClassA ()

@property (strong, nonatomic) NSString *GFICLocalPropertyNSString2;

@end

@implementation GFICClassA
//class methods
+ (NSString*)GFICclassMethod1:(NSString*)arg1 :(NSString*)arg2 {
    printf("GFI classMethod1 called");
    
    return @"GFI classMethod1_result";
}

//instance methods
- (NSString*)GFICinstanceMethod1:(NSString*)arg1 :(NSString*)arg2{
    printf("GFI instanceMethod1 called");
    
    self.GFICGlobalPropertyNSString1 = @"gfiGlobalPropertyNSString1_value";
    self.GFICLocalPropertyNSString2 = @"gfiLocalPropertyNSString2_value";
    
    
    return GFIC_GLOBAL_EXTERN_CONST_NSString_1;
}

- (void) GFICprintHelloWorld {
    NSLog(@"Hello World! from ObjC");
}
@end
nm -U libObjCUtils.a
//-U Don't display undefined symbols.
libObjCUtils.a(GFICClassA.o):
0000000000000000 t +[GFICClassA GFICclassMethod1::]
0000000000000290 t -[GFICClassA .cxx_destruct]
00000000000001d0 t -[GFICClassA GFICGlobalPropertyNSString1]
0000000000000230 t -[GFICClassA GFICLocalPropertyNSString2]
00000000000000b0 t -[GFICClassA GFICinstanceMethod1::]
00000000000001a0 t -[GFICClassA GFICprintHelloWorld]
00000000000001f0 t -[GFICClassA setGFICGlobalPropertyNSString1:]
0000000000000250 t -[GFICClassA setGFICLocalPropertyNSString2:]
00000000000002e8 S _GFIC_GLOBAL_EXTERN_CONST_INT_1
00000000000002f0 S _GFIC_GLOBAL_EXTERN_CONST_NSInteger_1
0000000000000538 S _GFIC_GLOBAL_EXTERN_CONST_NSString_1
0000000000000540 s _GFIC_LOCAL_STATIC_CONS_1
00000000000008a8 S _OBJC_CLASS_$_GFICClassA
0000000000000658 S _OBJC_IVAR_$_GFICClassA._GFICGlobalPropertyNSString1
0000000000000660 S _OBJC_IVAR_$_GFICClassA._GFICLocalPropertyNSString2
0000000000000880 S _OBJC_METACLASS_$_GFICClassA
00000000000006b0 s l_OBJC_$_CLASS_METHODS_GFICClassA
0000000000000718 s l_OBJC_$_INSTANCE_METHODS_GFICClassA
00000000000007c8 s l_OBJC_$_INSTANCE_VARIABLES_GFICClassA
0000000000000810 s l_OBJC_$_PROP_LIST_GFICClassA
0000000000000838 s l_OBJC_CLASS_RO_$_GFICClassA
00000000000006d0 s l_OBJC_METACLASS_RO_$_GFICClassA