我正在尝试构建一个调用多个静态库的简单iPhone应用程序。 但是,当我包含链接器标志“-ObjC”和“-all_load”(我需要为一个库)时,它会导致链接器错误:
ld: duplicate symbol
_OBJC_METACLASS_$_ASIFormDataRequest in /Users/XXXXX/Projects/AppName/Dependencies/Library1/lib1Kit.a(ASIFormDataRequest.o) and /Users/XXXXX/Projects/AppName/Dependencies/Library2/lib2Kit.a(ASIFormDataRequest.o)
当我删除标志时,上面的链接器错误消失了,但我得到了:
-[UIView height]: unrecognized selector sent to instance 0x13fe90
是否有人看到此错误以及它与-ObjC和/或-all_load的关系? 我很茫然,所以任何帮助都会受到赞赏。
谢谢, 布雷特
答案 0 :(得分:0)
这两个错误是正交的。
重复符号错误是因为您在两个单独的静态库中定义了相同的类。将其从一个中删除,错误将消失(删除它可能会很棘手,但看不到你的来源是不可能的)。
unrecognized selector
错误很可能是,因为您没有正确管理内存并且有一个过早释放的对象。在启用Zombie检测的情况下运行,它可能会告诉您哪个对象过早地被释放。更好的是,使用构建和分析构建所有代码,并修复首先确定的内存管理错误。