我试图在链接库时修复一些未解析的引用,并注意到缺少的类被定义为
U _OBJC_CLASS_$_CocoaRenderView
nm
。
但是,如果我检查定义了这个类的库,我发现了这个:
00000000 t -[CocoaRenderView initCocoaRenderView:]
000000f0 t -[CocoaRenderView initCocoaRenderViewFullScreen:]
000000e0 t -[CocoaRenderView nsOpenGLContext]
00000000 A .objc_class_name_CocoaRenderView
以下是问题 - b / w前缀_OBJC_CLASS_
和.objc_class_name_
的区别是什么?它似乎没有帮助链接器正确解析符号。
任何链接也会受到赞赏。
答案 0 :(得分:0)
我认为前缀为.objc_class_name_
的符号是类名(字符串),类型为“绝对全局符号”(A
),其中_OBJC_CLASS_
符号的类型为“文本部分符号“(t
)。
我没有研究过实施,但它们显然是不同的东西,我不确定这会对你有多大帮助,所以希望能够更接近金属的人能够进一步帮助你。
然而,在一天结束时,您似乎有足够的能力来验证该类是否未在目标文件中定义,并了解链接器正在抱怨什么,这就像我进行此类调查一样。 / p>