2012-04-19 12 views
7

He leído muchas publicaciones sobre SO y ninguna de las soluciones propuestas me funciona. Espero que alguien que sepa un poco más sobre la interpretación de errores pueda ayudar.Símbolos indefinidos para la arquitectura armv7, ld: símbolo (s) no aparecido para architecture armv7 - qué hacer?

Mi aplicación ha estado funcionando bien (y todavía lo hace), pero estoy teniendo un problema cuando uso cierta clase 'iCarousel', que es una implementación de Cover Flow.

Aquí está lo interesante: al abrir el proyecto de muestra para iCarousel, funciona bien en mi iPhone. Mi aplicación (en un proyecto separado) también funciona bien. Ambos usan arquitecturas armv6 armv7 y se ejecutan en iOS 5.1.

Copio la clase a mi propio proyecto y agrego todos los marcos necesarios. No hay errores todavía Pero cuando construyo y correr me da un error:

Ld /Users/Sooper/Library/Developer/Xcode/DerivedData/TestApp- 
ejfsezvwxyxhqpanwwrcmsbkslxi/Build/Intermediates/TestApp.build/Debug- 
iphoneos/TestApp.build/Objects-normal/armv7/TestApp normal armv7 

    cd "/Users/Sooper/Developer/TestApp v1.0" 
    setenv IPHONEOS_DEPLOYMENT_TARGET 5.0 
    setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin: 
    /Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -isysroot 

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk 
-L/Users/Sooper/Library/Developer/Xcode/DerivedData/TestApp-ejfsezvwxyxhqpanwwrcmsbkslxi/Build/Products/ 
Debug-iphoneos -F/Users/Sooper/Library/Developer/Xcode/DerivedData/TestApp-ejfsezvwxyxhqpanwwrcmsbkslxi/Build/Products/ 
Debug-iphoneos -filelist /Users/Sooper/Library/Developer/Xcode/DerivedData/TestApp-ejfsezvwxyxhqpanwwrcmsbkslxi/Build/Intermediates/TestApp.build/ 
Debug-iphoneos/TestApp.build/Objects-normal/armv7/TestApp.LinkFileList -dead_strip -miphoneos- 
version-min=5.0 -lz -framework QuartzCore -framework CoreGraphics -framework 
SystemConfiguration -lxml2.2.7.3 -framework Security -framework CoreMedia -framework Accounts 
-framework CoreFoundation -framework AudioToolbox -framework AVFoundation -framework Twitter - 
framework MediaPlayer -framework UIKit -framework Foundation -o 
/Users/Sooper/Library/Developer/Xcode/DerivedData/TestApp- 
ejfsezvwxyxhqpanwwrcmsbkslxi/Build/Intermediates/TestApp.build/Debug- 
iphoneos/TestApp.build/Objects-normal/armv7/TestApp 

Bajo este:

Undefined symbols for architecture armv7: 
    "_OBJC_CLASS_$_ArtworkScrollerViewController", referenced from: 
     objc-class-ref in TestAppViewController.o 
ld: symbol(s) not found for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Si quito la instancia de la clase del error desaparece y se ejecuta la aplicación. Estoy totalmente confundido. ¿Por qué debería funcionar por separado, pero no en otro proyecto?

Agradecería mucho alguna orientación.

+0

Este [respuesta] [1] me ayudó con el mismo problema, darle una oportunidad! [1]: http://stackoverflow.com/a/10170293/945831 –

Respuesta

20

Asegúrese de agregar ArtworkScrollerViewController.m al objetivo que se está construyendo

+0

Gracias por la respuesta. ¿Cómo agregaría 'ArtworkScrollerViewController.m' al objetivo? ¿Sería eso marcar 'Membresía objetivo' en el visor de información de la clase? He hecho esto, pero sigo teniendo el mismo error. – sooper

+0

Limpié después y volví a ejecutar, pareció arreglar eso. Gracias – sooper

+4

@sooper Para agregarlo al objetivo, abra el menú del lado derecho en XCode (Utilidades) mientras se selecciona 'ArtworkScrollerViewController.m'. Hay un menú desplegable en File Inspector llamado "Membresía de destino". Si selecciona eso, agregará el .m al objetivo. – RileyE

Cuestiones relacionadas