链接SINGLE框架静态库

时间:2015-06-04 04:39:44

标签: ios xcode frameworks static-linking duplicate-symbol

将特定的iOS应用程序项目链接到静态框架时,Xcode会在 静态框架文件中报告重复的符号错误(尽管报告的副本来自该框架内的不同目标文件):

duplicate symbol _kMGLMinimalViewport in:
/Users/alex/Documents/Code/MyProject/ThirdParty/MetalGL-0.9.0/MetalGL/MetalGL.framework/MetalGL(MGLContext.o)
/Users/alex/Documents/Code/MyProject/ThirdParty/MetalGL-0.9.0/MetalGL/MetalGL.framework/MetalGL(MGLRenderPipelineState.o)

报告为duplicate的_kMGLMinimalViewport符号是在框架源代码中的头文件中声明和定义的结构:

MGLPixelRect kMGLMinimalViewport = (MGLPixelRect){0, 0, 0, 0};

然后#import加入框架源中的几个实现文件,包括.m个文件和其他.h文件中的内联函数。该符号在框架内部严格使用,并且声明甚至不会作为可见头文件的一部分显示在最终应用程序项目中。

令人困惑的是,将此框架链接到其他应用程序项目时不会出现此重复错误,但我无法找到任何理由说明此特定应用程序项目在链接此框架时报告错误。

0 个答案:

没有答案
相关问题