我的问题
我在编译某些Xcode项目时遇到“_OBJC_CLASS _ $ ...,引用自:”链接器错误(它在iOS和Mac项目中都有发生)我已正确链接框架和导入。
设置
在编译时,我收到以下链接器错误: “_OBJC_CLASS _ $ _ JGCountdownTimer”,引自: JGCountdownTimerTestCase.o中的objc-class-ref
用于测试中使用的许多类。
我尝试过什么
答案 0 :(得分:13)
我遇到了类似的问题。我收到了链接器错误:
_OBJC_CLASS_$_MyClass
问题是我已为@interface
宣布了MyClass
,但未声明其对应的@implementation
。
修复只是添加
@implementation MyClass
@end
答案 1 :(得分:11)
快速回答
将以下行复制并粘贴到您的构建设置中:
GCC_SYMBOLS_PRIVATE_EXTERN = NO
在目标构建设置中查找“默认隐藏的符号”。对于Debug配置,您需要“No”。
我已经有这个问题开启和关闭了好几个月,我刚刚发现了原因。
答案 2 :(得分:2)
不确定这是否可能是问题,但是对于新的编译器,任何未明确引用/调用的obj-c都不会从库链接。例如,当您在库中实现类别时,这会导致问题。
尝试在目标的构建设置面板中将“-ObjC”添加到“其他链接器标记”。 耸肩
答案 3 :(得分:0)
编译不将那些复制的文件包括在其编译列表中。解决此错误 选择文件或文件夹,然后转到“构建阶段”面板,打开“编译源”步骤,然后单击+按钮并将它们添加到所有文件或文件夹。
右键单击项目文件夹,单击“将文件添加到...”,选择文件,然后单击“选项”按钮并选择目标,然后单击“添加”。