我创建了一个静态库,我将其添加到XCode中同一工作区中的另一个项目中。无论是模拟器还是实际设备,库都可以很好地构建。
所有错误都是指库中的类,因此不是另一个框架。
我得到两个未定义的符号错误,都引用“_OBJC_CLASS _ $ _ Campaign” 当我为实际设备构建时,我得到架构armv7s的未定义符号 当我为模拟器构建时,我得到架构i386的未定义符号
我尝试创建一个胖库:同样的问题。 我打开和关闭“仅为活动架构构建”:没有帮助。 我删除并重建了XCode工作区:没有解决方案。
我非常确定我将正确的.m文件添加到库的“编译源”中,并通过“使用库链接二进制文件”将库正确添加到其他项目中。我也试过将.lib拖到Frameworks文件夹中。
我将.lib的头文件添加到项目中。
我会很高兴有任何建议!
答案 0 :(得分:0)
问题可能是由于您的静态库从另一个库导入了某些内容。
您需要确定缺少哪些符号,并添加定义它们的库。在这方面,构建日志输出应该非常有用。
编辑:根据评论中的讨论,问题是由Campaign
类没有实现的胖引起的。如果没有实现,编译器不会生成类,这会导致链接错误。没有编译时错误,因为虽然声明了类的 interface 。
您应该在单独的Campaign.m
文件或其中一个已存在的文件中添加此类实现。