在实践中,“剥离非全局符号但保存外部符号”意味着什么?

时间:2013-05-16 00:41:33

标签: objective-c xcode linker

我正在查看将Strip Linked Product设置为YES并将Strip Style设置为Non-Global Symbols的Xcode项目。

Apple's developer doc表示此条样式“剥离非全局符号但保存外部符号”。这究竟意味着什么?

好像我有以下内容:

// Foo.h
@interface Foo : NSObject
- (void)doSomething;
@end

// Foo.m
@implementation Foo
- (void)doSomething { NSLog(@"Something"); }
@end

如果我将其编译为框架的一部分,我可以在一个单独的项目中包含此框架并添加以下内容:

// MyFoo.h
@interface Foo : NSObject
- (void)doSomething;
@end

// MyFoo.m
@implementation Foo
- (void)doSomething { NSLog(@"Something else"); }
@end

如果我理解正确的话,我可以在没有符号冲突的情况下编译并运行。那么这是如何工作的?

0 个答案:

没有答案