2013-08-02 82 views
0

我正在嘗試構建一個非常基本的iPad應用程序,它在mongohq.com上連接到MongoDB的託管實例。經過一番研究,似乎ObjCMongoDB庫很適合我的需求。但是,按照安裝說明/註釋herehere,我無法構建。編譯器抱怨與以下錯誤: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開發者,我懷疑無論是)我已經正確安裝或b)我在我的圖書館的基本認識是錯誤的。作爲參考,我已經檢出v0.9.7,運行git submodule update --initgit submodule sync從命令行回購的文件夾中。預先感謝任何和所有指導。

UPDATE

看來,的.o文件擴展名指示編譯器試圖建立一個Mac應用程序,而不是一個iPad應用程序的。也許有一個設置或標誌我缺少在圖書館爲iOS構建?

回答

0

看起來你需要鏈接到核心數據。嘗試將CoreData.framework添加到您的目標的Link Binary with Libraries部分。或者,如果您不需要核心數據序列化,只需從您的目標和/或項目中刪除NSManagedObject+BSONCoding.[hm]即可。 ObjCMongoDB的其餘部分在沒有它的情況下工作得很好。

+0

添加'CoreData.framework'完成了訣竅。非常感謝答案和一個非常有用的圖書館。 – natenash203