ObjCMongoDB链接器错误

时间:2013-08-02 15:14:50

标签: ios objcmongodb

我正在尝试构建一个非常基本的iPad应用程序,该应用程序在mongohq.com上连接到MongoDB的托管实例。经过一些研究,似乎ObjCMongoDB库很适合我的需求。但是,按照安装说明/评论herehere后,我无法构建。编译器抱怨以下错误:

Undefined symbols for architecture i386:
_OBJC_CLASS_$_NSAttributeDescription", referenced from:
  objc-class-ref in NSManagedObject+BSONCoding.o

_OBJC_CLASS_$_NSEntityDescription", referenced from:
  objc-class-ref in NSManagedObject+BSONCoding.o

_OBJC_CLASS_$_NSFetchedPropertyDescription", referenced from:
  objc-class-ref in NSManagedObject+BSONCoding.o

_OBJC_CLASS_$_NSManagedObject", referenced from:
  objc-class-ref in NSManagedObject+BSONCoding.o

_OBJC_$_CATEGORY_NSManagedObject_$_BSONCoding in NSManagedObject+BSONCoding.o

_OBJC_CLASS_$_NSRelationshipDescription", referenced from:
  objc-class-ref in NSManagedObject+BSONCoding.o

ld: symbol(s) not found for architecture i386

clang: error: linker command failed with exit code 1 (use -v to see invocation)

作为新手iOS开发人员,我怀疑a)我安装错误或b)我对库的基本理解有误。作为参考,我已检出v0.9.7,从repo文件夹的命令行运行git submodule update --initgit submodule sync。提前感谢任何和所有指导。

更新

.o文件扩展名似乎表明编译器正在尝试构建Mac应用程序,而不是iPad应用程序。也许我在库中缺少一个设置或标志来为iOS构建?

1 个答案:

答案 0 :(得分:0)

您似乎需要链接Core Data。尝试将CoreData.framework添加到目标的 Link Binary with Libraries 部分。

或者,如果您不需要Core Data序列化,只需从目标和/或项目中删除NSManagedObject+BSONCoding.[hm]即可。 ObjCMongoDB的其余部分在没有它的情况下工作正常。