1
函數或類我有含有科科斯觸摸靜態庫(混合目標C,目標C++和C++)一個Xcode 4.2的工作區和一個cocos2d的iOS應用。靜態庫和iOS應用程序都是兄弟姐妹。鏈接器找不到在靜態庫(目標C)
的問題是試圖在靜態庫鏈接到的函數和類時,應用程序的連接失敗。該應用程序確實設置了「Link Binary With Libraries」的靜態庫。就好像靜態庫中的函數和類沒有被導出,或者沒有被應用程序查找。
例如,我創建了一個函數int foo() { return 42; }
,並將它放入庫中,然後在應用程序中將其從main.m
中調用。
錯誤看起來是這樣的:
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_RootViewController", referenced from:
objc-class-ref in AppDelegate.o
"_foo", referenced from:
_main in main-972D78D1B1575F1.o
"_OBJC_CLASS_$_CCDirector", referenced from:
objc-class-ref in AppDelegate.o
objc-class-ref in libCocos2DBase.a(BaseScene.o)
objc-class-ref in libCocos2DBase.a(Director.o)
"_OBJC_CLASS_$_CCLayer", referenced from:
_OBJC_CLASS_$_FoundationLayer in libCocos2DBase.a(BaseScene.o)
"_OBJC_METACLASS_$_CCLayer", referenced from:
_OBJC_METACLASS_$_FoundationLayer in libCocos2DBase.a(BaseScene.o)
"_OBJC_CLASS_$_CCTexture2D", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_EAGLView", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_CCScene", referenced from:
objc-class-ref in libCocos2DBase.a(BaseScene.o)
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status
謝謝你這麼多的人,可以幫助,我是新來的XCode和已經花了很多時間尋找一個解決方案。
很可能這是正確的。我試着爲模擬器(i386版本)和設備構建兩個版本,似乎庫和應用程序都在構建這個架構。我刪除了靜態庫項目並從頭開始重新創建它,並解決了這個問題,所以我不知道它的實際情況。 – 2011-12-29 04:36:30