ios xcode xcode4.6

ios - Error del enlazador Mach-O en Xcode 4.6



xcode4.6 (10)

  1. Salir de Xcode
  2. Reiniciar el sistema
  3. Seleccione Xcode -> Preferencias -> Ubicaciones
  4. En Ubicaciones, verá ''Datos derivados''. Haga clic en el icono de flecha justo al lado de la ruta.
  5. Esto abrirá una carpeta que contiene ''Datos derivados'', elimínelo.
  6. Limpiar el producto y ejecutar

    si aun no funciona entonces

    Configuraciones de compilación> Habilitar código de bits> No

Tengo una aplicación iOS en Xcode 4.6 y cuando recientemente intenté construir y ejecutar en el simulador de iPhone 6.1 obtuve un "Error de vinculador de Mach-O". Continuó diciendo:

ld: 17 símbolos duplicados para la arquitectura i386 clang: error: el comando del vinculador falló con el código de salida 1 (use -v para ver la invocación)

Alguien sabe cómo resolver esto?

¡Muchas gracias!


Asegúrate de no tener métodos no instantáneos con el mismo nombre en varias clases (por ejemplo, si tengo dos controladores de vista que son bastante similares, para moverme rápidamente, copio y pego el código de un controlador de vista al segundo y ambos tener métodos llamados lo mismo como: NSMutableString * filtersStringFromStringWithFilter (NSString * string, NSString * filter)) luego la aplicación se confunde cuál de esos métodos usar ya que ambos están disponibles, RENAME IT en la segunda clase y cambia cualquier llamada a esa Método en esa clase y ha eliminado la confusión. ¡No todos queremos que las cosas sean más claras!


Cuando refactoriza una función de clase, a veces también obtendrá este error. Solo ve a Producto-> Limpiar y reconstruir.


En mi caso fueron constantes.

NSString *const cellID = @"cellID";

Esta línea fue escrita en dos archivos .m. Después de agregar una palabra clave static al inicio, el problema se resolvió.

Este problema puede ser recreado en un nuevo proyecto también. Usted pensaría que la definición de constantes en los diferentes archivos .m no tendrá ningún efecto ya que son privados. Pero no sé cómo el compilador está manejando cosas detrás de la escena. Además, cuando toca el problema desde el navegador de problemas, no abre una página en el editor como lo hace para cualquier otro problema. Realmente frustrante.


En mi ejemplo, declaré

extern NSString const *keyString

en dos archivos diferentes. Cambié el nombre de uno de ellos y resolví mi problema.


Fases de compilación "->" Compilar orígenes ", haga clic en el botón" Validar configuración "

se va a arreglar tu proyecto


No estoy seguro de poder darle una solución, pero compartiré una respuesta ya que también me ocurrió lo mismo en xCode 4.6. Agregué un encabezado de clase C y un archivo de implementación y los incluí en main. Entonces decidí eliminar ese nuevo encabezado e implementación de Clase C. Cuando terminé de agregar una nueva clase c / encabezado de nuevo con el mismo nombre y función de llamadas, terminé con su error.

Francamente, esto podría ser un error. La única y más rápida manera en que lo arreglé fue comenzar un nuevo proyecto y jalar todas las clases.


Si desea cambiar un valor tanto en la clase de arrastre diferente. Recuerde marcar con palabras clave estáticas.

o el clang lanzará dicho error a continuación sin ninguna interpretación de valor。

Error de vinculador de Apple Mach-O error: error: el comando del vinculador falló con el código de salida 1


Simplemente vaya a "Crear fases" -> "Compilar fuentes" y busque duplicados de clases.


¡Compruebe si tiene archivos " * .m " en su #import ! Parece que fue mi error ...