将静态库添加到项目>>未定义的符号

时间:2014-08-22 08:03:22

标签: ios xcode

我创建了一个静态库,我将其添加到XCode中同一工作区中的另一个项目中。无论是模拟器还是实际设备,库都可以很好地构建。

所有错误都是指库中的类,因此不是另一个框架。

我得到两个未定义的符号错误,都引用“_OBJC_CLASS _ $ _ Campaign” 当我为实际设备构建时,我得到架构armv7s的未定义符号 当我为模拟器构建时,我得到架构i386的未定义符号

我尝试创建一个胖库:同样的问题。 我打开和关闭“仅为活动架构构建”:没有帮助。 我删除并重建了XCode工作区:没有解决方案。

我非常确定我将正确的.m文件添加到库的“编译源”中,并通过“使用库链接二进制文件”将库正确添加到其他项目中。我也试过将.lib拖到Frameworks文件夹中。

我将.lib的头文件添加到项目中。

我会很高兴有任何建议!

1 个答案:

答案 0 :(得分:0)

问题可能是由于您的静态库从另一个库导入了某些内容。

您需要确定缺少哪些符号,并添加定义它们的库。在这方面,构建日志输出应该非常有用。

编辑:根据评论中的讨论,问题是由Campaign类没有实现的胖引起的。如果没有实现,编译器不会生成类,这会导致链接错误。没有编译时错误,因为虽然声明了类的 interface

您应该在单独的Campaign.m文件或其中一个已存在的文件中添加此类实现。