我正在尝试构建一个非常基本的iPad应用程序,它可以连接到MongoDB在mongohq.com上的一个托管实例。经过一些研究,ObjCMongoDB库似乎非常适合我的需要。但是,在遵循安装说明/注释这里和这里之后,我无法构建。编译器正在抱怨以下错误:
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开发人员,我怀疑要么是我安装的不正确,要么是我对库的基本理解错了。作为参考,我已经签出了v0.9.7,在repo文件夹中的命令行中运行git submodule update --init和git submodule sync。提前感谢您的指导。
更新
.o文件扩展名似乎表明编译器试图构建一个Mac应用程序,而不是iPad应用程序。也许在为iOS构建的库中缺少一个设置或标志?
发布于 2013-08-02 16:07:15
看起来您需要链接到Core数据。尝试将CoreData.framework添加到目标的链接二进制库部分。
或者,如果不需要核心数据序列化,只需从目标和/或项目中删除NSManagedObject+BSONCoding.[hm]即可。没有它,ObjCMongoDB的其余部分将正常工作。
https://stackoverflow.com/questions/18020442
复制相似问题