telefono simbolos simbolo significado puede musical musica iconos flecha descarga canciones biblioteca apple aparece activar iphone objective-c ipad linker symbols

simbolos - simbolo telefono y flecha en iphone



Problemas con símbolos duplicados (8)

Asegúrese de que delegate.m solo aparezca una vez dentro de Compile-Sources.

Durante un refactor de un proyecto de iOS, me encontré con este oso de error. Durante la fase de enlace, recibo este mensaje:

ld: símbolo duplicado _OBJC_IVAR _ $ _ TinCanViewController.currentViewController en /path/to/TinCanViewController-E98A666B7AF2673A.o y /path/to/TinCanViewController-E98A666B7AF2673A.o

Por lo que puedo decir, parece que TinCanViewController-E98A666B7AF2673A.o declara el símbolo especificado dos veces; ambas rutas apuntan al mismo archivo .o exacto. Ejecuté nm en ese archivo específico, y solo incluía ese símbolo una vez:

00008150 S _OBJC_IVAR _ $ _ TinCanViewController.currentViewController

Corrí nm en todos los otros archivos .o en el directorio para ver si también estaban declarando este símbolo, pero no es así. Esto le sucede a cualquier miembro que agregue a la clase TinCanViewController, no es específico de currentViewController.

Siento que de alguna manera debo estar ligando contra la clase dos veces de alguna manera, pero he examinado con asiduidad todas las referencias a esta clase. En la versión refactorizada, básicamente no hay ninguno. AppDelegate lo incluye, pero en este momento es básicamente una clase de paso que carga otro ViewController al inicio. Ninguna otra clase en el proyecto lo incluye.

¿Alguna sugerencia sobre qué podría estar causando esto o cómo podría depurarlo mejor?


Creo que es un error con el último enlazador de Apple al crear bibliotecas estáticas universales. No puedo encontrar el número de error actualmente, pero esto sucede porque genera incorrectamente armv6 y armv7 sin desambiguarlos.

Para verificar si este es el caso, cambie la configuración para compilar solo armv6 o amv7, y no tendrá este problema.


Este problema se resuelve aquí cuando eliminé (usando Xcode) todos los archivos .m y .h de la carpeta Class, luego limpié Project (Command + Shift + K) y Builded nuevamente. Así que arrastro los archivos desde Finder a Class Folder en Xcode nuevamente. Finalmente, limpié y construí mi Proyecto nuevamente ...

Buena suerte !!!


Esto también podría suceder si tiene un proyecto de múltiples objetivos y dos objetivos tienen el mismo archivo como abc.m y se selecciona abc.m para ambos objetivos.

Lo que sucedió en mi caso fue que tenía dos objetivos llamados ABC y XYZ y ambos tenían su propio archivo DiagramViewController.m , que se supone que ejecutan código para sus objetivos. Accidentalmente, tenía DiagramViewController.m del objetivo ABC tenía el objetivo seleccionado para XYZ .

Solución:

Haga clic en el archivo .m vaya al inspector de archivos y deseleccione el objetivo adicional.


Resultó que incluí el archivo .h y el archivo .m dos veces en el proyecto. Una vez que eliminé la segunda copia, el error desapareció.


Tuve este problema en el último Xcode 4. Causa: file.m lugar de file.h

Posiblemente, incluyó TinCanViewController.m (debería ser TinCanViewController.h )


Tuve esto, pero mi problema estaba relacionado con problemas de fusión de nuestro repositorio. El archivo .m se listó dos veces en un punto que solo debería haberse enumerado una vez (dentro del proyecto, pero no dentro de la estructura del archivo / grupo, por lo que no se pudo ver el problema en Xcode, solo el error). La solución es abrir el archivo .pbxproj dentro de su archivo de proyecto y ubicar la entrada duplicada en ese archivo. Después de eliminar el duplicado, el proyecto se construyó perfectamente.


Tuve un problema. el problema era que tenía dos bibliotecas que contenían el mismo archivo .m.

Me gusta esto

lib.a - for device. libCauly-universal.a - for simulator and device.

así que eliminé uno.