1

我试图在链接库时修复一些未解析的引用,并注意到缺少的类被定义为

 U _OBJC_CLASS_$_CocoaRenderView

nm. 但是,如果我检查定义此类的库,我发现:

00000000 t -[CocoaRenderView initCocoaRenderView:]
000000f0 t -[CocoaRenderView initCocoaRenderViewFullScreen:]
000000e0 t -[CocoaRenderView nsOpenGLContext]
00000000 A .objc_class_name_CocoaRenderView

_OBJC_CLASS_所以这是一个问题 - b/w 前缀和有什么区别.objc_class_name_?它似乎没有帮助链接器正确解析符号。

任何链接也将不胜感激。

4

1 回答 1

0

我相信前缀.objc_class_name_为类名(字符串)的符号是“绝对全局符号”(A_OBJC_CLASS_类型,而符号是“文本部分符号”(t)类型。

我没有研究过实现,但它们显然是不同的东西,我不确定这是否真的会对你有很大帮助,所以希望那些更接近金属的人能够进一步帮助你。

然而,归根结底,您似乎有足够的能力验证该类未在目标文件中定义,并了解链接器在抱怨什么,就我进行此类调查而言。

于 2014-07-26T07:46:59.807 回答