Estoy usando tercero marcos en mi nativas de iOS de la aplicación (manojo de .una de las bibliotecas). Mi aplicación se ha desarrollado con XCode 5 base SDK 7.0.

Las bibliotecas de compilación y enlace de bien, cuando el destino de la implementación es de 6.1 (biblioteca de encabezado y de búsqueda de caminos son buenos). Sin embargo, cuando puedo cambiar el destino de implementación para ser 7.0, me sale el siguiente error del vinculador:

Las bibliotecas son un poco viejo, no estoy seguro de si hay un problema de compatibilidad. No voy a apoyar a iOS 6, así que hay que establecer el destino de la implementación como de 7.0. Cualquier tipo de ayuda/orientación sería genial.

  • Alguna razón por la que estos son cada vez compilado para i386? Supongo que usted necesita para eliminar i386 desde el objetivo de construir la configuración de modo que sólo armv7 y armv7s está allí.
  • He intentado jugar con las arquitecturas. Creo que no es una arquitectura problema. Por el camino, sólo bibliotecas de apoyo armv7, así armv7s está fuera de la cuestión.
  • He oído ya, pero en la parte superior del error que dice que la arquitectura i386. Al parecer no soporta que sea 🙂
  • Gracias por la sugerencia. Yo soy también enfrentan el mismo tipo de errores, tratando de vincular a terceros bibliotecas de c++ (libjingle). Mi entorno es Xcode 5.0 y destino de la implementación de iOS 7.0. Acabo de cambiar de destino para la implementación de iOS 6.1 para el momento, y los errores se han ido. Supongo que para la implementación de destino iOS 7.0, debe agregar un vacío .mm de archivo (como se mencionó en el siguiente respuestas, pero voy a tratar más adelante).
InformationsquelleAutor Guven | 2013-10-09

3 Comentarios

  1. 46

    para mí, incluyendo el ‘stdc++.6.0.9.dylib‘ en lugar de ‘stdc++.dylib‘ en las dependencias resuelto el enlazador errores demasiado

    • Que resuelto el problema. Gracias! ¿Cuál es la diferencia entre estas dos bibliotecas?
    • Yo creo, que la especificación de una biblioteca directamente, salta el Xcode lógica para ‘optimizar’ y la comprobación de si el proyecto contiene los archivos de código fuente de C++
    • Ya esta resuelto el problema para mí también – sin necesidad de añadir ningún vacío archivos de C++.
    • tanto wow ! muchas gracias
    • Todavía un problema con Xcode 6.3.2, y esta revisión aún funciona.
    • ¿cuál es acerca de otros enlazador de la bandera de lo que para establecer en que

  2. 28

    Resulta que si XCode no se puede encontrar ningún archivos de C++ en el proyecto, entonces se supone que libstd++ no es necesario. Así, tendrá que agregar manualmente un archivo de C++ para el proyecto (un vacío .mm de archivo sería suficiente). Esa es la solución.

    Todos los créditos van para este respuesta en este Stackoverflow hilo.

    • Voodoo cosas! Trabajó para mí
    • También funciona si agregar cualquier encabezado de C++ #importar .archivo pch.
    • Wow. Esto todavía es un problema en XCode 6.1.1 y esta solución todavía funciona. Los plátanos. Gracias por poner la respuesta aquí también!
    • Cómo agregar este vacío .mm de archivo puede decirme ??
  3. 8

    Parece como si myLibrary.una fue construido con llamadas a código C++ y utiliza libstdc++ como su estándar de C++ biblioteca. El proyecto de aplicación probablemente especifica libc++ en lugar de eso, tal vez como el compilador por defecto.

    Trata de cambiar de nuevo a libstdc++ y ver si el error desaparece (o cambiar, al menos). Su eventual solución es probable que sea una biblioteca que se construye en contra de la nueva biblioteca estándar.

    • Gracias por señalar esto, pero nope. Esto no soluciona el problema. De hecho, recuerdo que los errores de la biblioteca con la descripción ‘libc++abi.dylib: el controlador tiró de excepción’. Así que, supongo que la biblioteca está compilado con la libc++.
    • Muchas gracias Felipe, usted salvó mi día

Dejar respuesta

Please enter your comment!
Please enter your name here