我已經構建了自己的靜態庫,其組件可以在我的項目中重用,並且最近需要更新一堆類。具體而言,由於某些類改名,某些方法的簽名發生了變化。iPhone SDK鏈接錯誤與靜態庫
現在發生的是,庫編譯對自己很好,但是,當添加到應用程序的項目,該項目未能鏈接:
Ld build/Sucursales.build/Debug-iphoneos/Sucursales.build/Objects-normal/armv6/Sucursales normal armv6
cd /Users/nameghino/src/Sucursales
setenv IPHONEOS_DEPLOYMENT_TARGET 3.1
setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk -L/Users/nameghino/src/Sucursales/build/Debug-iphoneos -L/Users/nameghino/src/Sucursales/../../Library/MyLibraries/MSSharedLibrary-1.0.0 -F/Users/nameghino/src/Sucursales/build/Debug-iphoneos -filelist /Users/nameghino/src/Sucursales/build/Sucursales.build/Debug-iphoneos/Sucursales.build/Objects-normal/armv6/Sucursales.LinkFileList -dead_strip -lxml2 -ObjC -all_load -miphoneos-version-min=3.1 -framework Foundation -framework UIKit -framework CoreGraphics -lsqlite3.0 -framework CoreLocation -framework MapKit -lxml2 /Users/nameghino/src/MSSharedComponents/Frameworks/MSSharedLibrary/build/Debug-iphoneos/libMSSharedLibrary.a -o /Users/nameghino/src/Sucursales/build/Sucursales.build/Debug-iphoneos/Sucursales.build/Objects-normal/armv6/Sucursales
Undefined symbols:
"_OBJC_CLASS_$_DataCatalogService_GetSingleRow", referenced from:
objc-class-ref-to-DataCatalogService_GetSingleRow in libMSSharedLibrary.a(MSDataCatalogSpecification.o)
**"_OBJC_CLASS_$_DataCatalogService_ArrayOfString", referenced from:
objc-class-ref-to-DataCatalogService_ArrayOfString in libMSSharedLibrary.a(MSDataCatalogSpecification.o)
"_OBJC_CLASS_$_DataCatalogService_GetSingleRowResponse", referenced from:
objc-class-ref-to-DataCatalogService_GetSingleRowResponse in libMSSharedLibrary.a(MSSingleRowResultsParser.o)
"_OBJC_CLASS_$_DataCatalogService_GetMultiRowResponse", referenced from:
objc-class-ref-to-DataCatalogService_GetMultiRowResponse in libMSSharedLibrary.a(MSMultiRowResultsParser.o)
"_OBJC_CLASS_$_DataCatalogService_GetMultiRow", referenced from:
objc-class-ref-to-DataCatalogService_GetMultiRow in libMSSharedLibrary.a(MSDataCatalogSpecification.o)
"_OBJC_CLASS_$_DataCatalogService_HelloWorldResponse", referenced from:
objc-class-ref-to-DataCatalogService_HelloWorldResponse in libMSSharedLibrary.a(DataCatalogService.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status**
好奇的是,經過大量的項目清理的(無論是在應用程序和lib項目中),我仍然遇到同樣的問題。即使開始一個新項目,問題仍然存在。
我也注意重新啓動Xcode之間的乾淨和建立幾次,但沒有好處。
任何想法去哪裏看?
感謝您的回答! 是的,該庫是該項目的依賴項。 是的,庫名稱位於「鏈接庫與二進制文件」組中。 是的,事實上,鏈接器調用在上面的pastie中。 – Nico 2010-05-31 15:05:49