para developer descargar apple iphone xcode linker three20 static-libraries

iphone - developer - La dependencia de la biblioteca estática se compila en el simulador en Xcode 3.2.3, falla en el dispositivo



apple developer (2)

La actualización a XCode 3.2.3 y iPhone 3.2 / 4.0 SDK introdujo un error extraño en mi proceso de compilación.

Tengo una biblioteca estática, Compton, que a su vez depende de tres20. Construyo Compton como una dependencia de las aplicaciones cliente que potencia.

Cuando compilo Compton como su propio proyecto en modo simulador o dispositivo, 3.2 o 4.0 SDK, todo compila bien, sin errores.

Cuando compilo una aplicación cliente que hace referencia a Compton utilizando el SDK 3.2 o 4.0, simulador, con la orientación del iPhone o iPhone / iPad en 3.2, todo funciona bien, no hay errores de compilación y la aplicación funciona como se espera en el simulador.

Cuando compilo exactamente el mismo proyecto sin cambiar nada, excepto la configuración de compilación desde simulador a dispositivo, sin embargo, recibo los siguientes errores de enlace que parece que no puedo desterrar después de horas jugando con sentencias #import , rutas de búsqueda, configuración de compilación, etc. La parte con la que estoy realmente frustrado es que las versiones del simulador están funcionando bien, parece un pequeño problema de configuración. Estoy pegando los errores a continuación, parece que las clases de Compton, desde la perspectiva de construir mi proyecto en modo dispositivo, no pueden "ver" algunos de los tres encabezados.

Estoy usando la versión troncal de three20, saqué hoy.

Aquí está el resultado de los errores de enlace:

Ld build/NewBlankComptonTemplate.build/Debug-iphoneos/NewBlankComptonTemplate.build/Objects-normal/armv7/NewBlankComptonTemplate normal armv7 cd /Users/wiley/iphone_projects/ComptonQuizzes/NewBlankComptonTemplate setenv IPHONEOS_DEPLOYMENT_TARGET 4.0 setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin" /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk -L/Users/wiley/iphone_projects/ComptonQuizzes/NewBlankComptonTemplate/build/Debug-iphoneos -F/Users/wiley/iphone_projects/ComptonQuizzes/NewBlankComptonTemplate/build/Debug-iphoneos -filelist /Users/wiley/iphone_projects/ComptonQuizzes/NewBlankComptonTemplate/build/NewBlankComptonTemplate.build/Debug-iphoneos/NewBlankComptonTemplate.build/Objects-normal/armv7/NewBlankComptonTemplate.LinkFileList -dead_strip -ObjC -miphoneos-version-min=4.0 -framework Foundation -framework UIKit -framework CoreGraphics -framework AudioToolbox -framework AVFoundation -framework CFNetwork -framework MediaPlayer -framework MessageUI -framework MobileCoreServices -framework QuartzCore -framework StoreKit -framework SystemConfiguration -lxml2 -lz.1.2.3 /Users/wiley/iphone_projects/ComptonQuizzes/libs/Compton/src/build/Debug-iphoneos/libCompton.a -o /Users/wiley/iphone_projects/ComptonQuizzes/NewBlankComptonTemplate/build/NewBlankComptonTemplate.build/Debug-iphoneos/NewBlankComptonTemplate.build/Objects-normal/armv7/NewBlankComptonTemplate Undefined symbols: "_OBJC_CLASS_$_TTStyleSheet", referenced from: objc-class-ref-to-TTStyleSheet in AppDelegate.o "_OBJC_CLASS_$_TTURLAction", referenced from: objc-class-ref-to-TTURLAction in AppDelegate.o "_OBJC_CLASS_$_TTRoundedRectangleShape", referenced from: objc-class-ref-to-TTRoundedRectangleShape in libCompton.a(ComptonStyleSheet.o) "_OBJC_METACLASS_$_TTDefaultStyleSheet", referenced from: _OBJC_METACLASS_$_ComptonStyleSheet in libCompton.a(ComptonStyleSheet.o) "_OBJC_CLASS_$_TTView", referenced from: objc-class-ref-to-TTView in libCompton.a(ComptonQuizStartController.o) "_OBJC_CLASS_$_TTShapeStyle", referenced from: objc-class-ref-to-TTShapeStyle in libCompton.a(ComptonQuizStartController.o) "_OBJC_CLASS_$_TTInnerShadowStyle", referenced from: objc-class-ref-to-TTInnerShadowStyle in libCompton.a(ComptonQuizStartController.o) "_OBJC_METACLASS_$_TTViewController", referenced from: _OBJC_METACLASS_$_ComptonFeedbackController in libCompton.a(ComptonFeedbackController.o) _OBJC_METACLASS_$_ComptonCatalogController in libCompton.a(ComptonCatalogController.o) _OBJC_METACLASS_$_ComptonQuizStartController in libCompton.a(ComptonQuizStartController.o) _OBJC_METACLASS_$_PILAppAdViewController in libCompton.a(PILAppAdViewController.o) _OBJC_METACLASS_$_ComptonQuizController in libCompton.a(ComptonQuizController.o) "_OBJC_CLASS_$_TTURLCache", referenced from: objc-class-ref-to-TTURLCache in libCompton.a(ComptonFeedbackController.o) "_OBJC_CLASS_$_TTSolidBorderStyle", referenced from: objc-class-ref-to-TTSolidBorderStyle in libCompton.a(ComptonQuizStartController.o) "_OBJC_CLASS_$_TTViewController", referenced from: _OBJC_CLASS_$_ComptonFeedbackController in libCompton.a(ComptonFeedbackController.o) _OBJC_CLASS_$_ComptonCatalogController in libCompton.a(ComptonCatalogController.o) _OBJC_CLASS_$_ComptonQuizStartController in libCompton.a(ComptonQuizStartController.o) _OBJC_CLASS_$_PILAppAdViewController in libCompton.a(PILAppAdViewController.o) _OBJC_CLASS_$_ComptonQuizController in libCompton.a(ComptonQuizController.o) "_OBJC_CLASS_$_TTNavigator", referenced from: objc-class-ref-to-TTNavigator in AppDelegate.o "_OBJC_CLASS_$_TTPostController", referenced from: objc-class-ref-to-TTPostController in libCompton.a(ComptonFeedbackController.o) "_OBJC_CLASS_$_TTRoundedRightArrowShape", referenced from: objc-class-ref-to-TTRoundedRightArrowShape in libCompton.a(ComptonStyleSheet.o) "_OBJC_CLASS_$_TTButton", referenced from: objc-class-ref-to-TTButton in libCompton.a(ComptonFeedbackController.o) "_OBJC_CLASS_$_TTSolidFillStyle", referenced from: objc-class-ref-to-TTSolidFillStyle in libCompton.a(ComptonQuizStartController.o) "_OBJC_CLASS_$_TTWebController", referenced from: objc-class-ref-to-TTWebController in AppDelegate.o "_TTScreenBounds", referenced from: -[ComptonCatalogController viewDidLoad] in libCompton.a(ComptonCatalogController.o) -[PILAppAdViewController viewDidLoad] in libCompton.a(PILAppAdViewController.o) "_OBJC_CLASS_$_TTDefaultStyleSheet", referenced from: _OBJC_CLASS_$_ComptonStyleSheet in libCompton.a(ComptonStyleSheet.o) ld: symbol(s) not found collect2: ld returned 1 exit status

¿Puede alguien ayudarme a descubrir qué puede estar pasando mal aquí?

Actualización: eliminé el error de vinculación de símbolos duplicados utilizando la horquilla de three20 y el proceso descrito aquí y quitando la bandera del enlazador -all_load en three20 y Compton. El problema realmente loco en el que estoy atascado sigue siendo: puedo compilar y ejecutar bien la aplicación en el simulador, pero al compilar para el dispositivo, obtengo los errores de enlace anteriores.

Actualización 2: resolví el problema, agregué una respuesta y la acepté. El problema fue de hecho una configuración de configuración de compilación: si está utilizando el SDK 4.0, debe configurar "Arquitecturas" a "Optimizado (armv7)".


Por lo que puedo decir, construiste libCompton mientras le gustaba directamente a three20, esto no causará más que infierno. Vincular bibliotecas estáticas e intentar usar eso en el proyecto final no va a ser divertido. También enlaza three20 con tu aplicación, y debería resolver tus problemas, compton solo necesita los encabezados para poder compilar, solo requerirá que esos símbolos estén presentes en el enlace final en tu aplicación.


Ya resolví este problema, la respuesta llegó en los foros de desarrolladores de Apple. Si configura el SDK base en> 3.2, debe configurar la opción "Arquitecturas" en Configuraciones de compilación en Optimizado (armv7).

El código ahora se compila y está bien en el simulador y el dispositivo.