iOS 动态库运行时符号冲突
本文demo 构造了这样的场景: 有两个动态库framework,DA和DB,DA定义了函数func,DB定义了函数func,两个func的名字一样,但是内部实现不一样,然后使用App加载这两个动态库,结果运行时func的调用和预期的不一致。 动态库DA // func.h const char * func(void); const char * func_a(void); // func.c #include "func.h" const char * func(void) { return "i m da func\n"; } const char * func_a(void) { return "i m da func_a\n"; } 动态库DB // func.h const char * func(void); const char * func_b(void); // func.c #include "func.h" const char * func(void) { return "i m db func\n"; } const char * func_a(void) { return "i m db func_b\n"; } App 集成 //Appdelegate.m #import "AppDelegate.h" #import @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { printf("%s",func()); //预期打印 i m da func printf("%s",func_a()); return YES; } //ViewController.m #import "ViewController.h" #import @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; printf("%s",func());//预期打印 i m db func printf("%s",func_b()); } @end 实测 ...