2012-09-23 17 views
8

Tengo un proyecto que utiliza el zbar-sdk (una biblioteca de escaneo de código de barras).xcode 4.5 - símbolos no encontrados para la arquitectura i386 (zbar)

Después de actualizar mi máquina a xcode 4.5 y ios6sdk estoy teniendo algunos problemas.

Pude construir en el simulador sin tocar nada sobre mi proyecto. Esto está usando la última biblioteca de zbar 1.2.

Luego quise construir mi dispositivo ios6 para probarlo, y es cuando recibí un error.

Después de buscar en Google en el foro de desarrolladores de zbar, vi que necesitaba obtener la fuente de zbar y compilar la libzbar.a para armv7 y armv7s, ya que esto aún no lo ha hecho el desarrollador de zbar.

See - http://sourceforge.net/projects/zbar/forums/forum/1072195/topic/5728912

Así lo hice, reimporten la libzbar.a actualizada en mi proyecto. Luego construí para mi dispositivo, ¡y funcionó! Pude obtener mi aplicación en mi dispositivo de prueba y la biblioteca de código de barras zbar funcionó bien.

Pensé que era el final, pero desafortunadamente no.

Intenté construir de nuevo en el simulador (ios6), y eso es cuando falla.

No importa lo que yo no puedo conseguir este proyecto de construcción, tanto para el dispositivo y simualtor al mismo tiempo y con la misma configuración :(

Mi configuración del proyecto libzbar.a hora de construir mi propio archivo libzbar.a :

Arquitectura: Estándar (ARMv7, armv7s) $ (ARCHS_STANDARD_32_BIT)

Construir activo Arquitectura solamente: No

Arquitecturas válidos: armv7s ARMv7

Y mis configuración del proyecto (por miaplicacion) como:

Arquitectura: Estándar (ARMv7, armv7s) $ (ARCHS_STANDARD_32_BIT)

Construir activo Arquitectura solamente: No

Arquitecturas válidos: ARMv7 armv7s

SDK Base: iOS6

iOS despliegue Targ et: iOS 5.0

Y el error al intentar construir al simulador:

ld: warning: ignoring file /Users/blah/iOS App/myapp/ZBarSDK/libzbar.a, missing required architecture i386 in file /Users/blah/iOS App/myapp/ZBarSDK/libzbar.a (2 slices) 
Undefined symbols for architecture i386: 
    "_OBJC_CLASS_$_ZBarReaderViewController", referenced from: 
     objc-class-ref in mycontroller.o 
    "_ZBarReaderControllerResults", referenced from: 
     -[mycontroller imagePickerController:didFinishPickingMediaWithInfo:] in mycontroller.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

He intentado ajustar la configuración del proyecto libzbar.a (por ejemplo, construir una arquitectura activa establecida en "SÍ"), pero esto no resulta en que el simulador o el dispositivo funcionen.

El hecho de que funcione en el dispositivo pero no en el simulador me hace pensar que hay una configuración de proyecto/arquitectura extraña que causa esto.

Cualquier ayuda muy apreciada!

Respuesta

2

Dudo que esto es la respuesta correcta pero funcionó para mí, he recopilado la nueva libzber.a utilizando arquitecturas: armv7s ARMv7 ARMv6 i386 en ese orden también es necesario especificar arquitecturas válidos como los mismos valores. De nuevo, esto es lo que funcionó para mí con un lanzamiento reciente que necesitaba para salir A.S.A.P. Ambos se encuentran en Target -> Build Settings -> Architecures.

También tenga en cuenta que $ (ARCHS_STANDARD_32_BIT) deben eliminarse de la configuración.

1

He solucionado un problema similar al configurar la arquitectura del simulador iOS6 en OTHER_LDFLAGS en Target-> Build Settings.

me olvidó que tenía un argumento de línea de comandos diferentes para archituctures separadas por lo que tuve que indicar manualmente el simulador

+0

u ¿Cómo hacer eso? –

Cuestiones relacionadas