iphone ios xcode linker core-plot

iphone - iOS: error de vinculador después de actualizar a Xcode 4.5, posiblemente relacionado con Core Plot



linker core-plot (10)

¿Hiciste una limpieza y reconstrucción? También revisa que tengas armv6 y armv7 en las arquitecturas. Es posible que deba recompilar sus objetivos y volver a agregar las bibliotecas al destino.

Acabo de actualizar a Xcode 4.5GM y Xcode 4.5GM ordenado algunas pantallas en el proyecto de mi iPhone para hacer frente al tamaño adicional de la pantalla en el iPhone 5. El proyecto está dirigido a iOS 5.1 y acabo de venir a compilarlo para mi teléfono y obtengo este error del enlazador:

el archivo es universal (2 divisiones) pero no contiene una (n) división de armv7s: /Users/JonathanW/Documents/MyXcode/myApp/myApp/CorePlot/libCorePlot-CocoaTouch.a para la arquitectura armv7s

Estoy usando la biblioteca estática Core Plot 1.0 en mi proyecto y hasta ahora no he tenido ningún problema con ella. Mirando a mi alrededor puedo ver errores similares relacionados con la configuración de la arquitectura de compilación pero no estoy seguro de a dónde ir desde aquí. El proyecto funciona bien en el simulador (tanto iOS 5.1 como iOS 6 ). ¿Algunas ideas?


Cambie el compilador en el proyecto CorePlot del compilador de Apple LLVM 4.1 a LLVM GCC 4.2


Funciona en el simulador porque el simulador siempre utilizará la arquitectura i386. Eso no ha cambiado con el nuevo SDK. Lo que ha cambiado es la presencia del iPhone 5, que utiliza una nueva arquitectura (armv7s). El proyecto para su aplicación agregó automáticamente armv7s como una arquitectura válida, pero la biblioteca probablemente fue compilada sin conocimiento de ella. Por lo tanto, su aplicación habilitada para arm7s intenta vincularse con una biblioteca que se construyó sin armv7s y falla.

Para solucionarlo, solo necesitarás acceso al proyecto que produce la biblioteca. Modifique la configuración de "Arquitectura válida" en el destino para incluir armv7s y luego reconstrúyala.


He estado luchando con esto durante días y finalmente he logrado que funcione creando una nueva biblioteca estática.

Utilicé el sistema de control de código fuente de Mercurial a través de las instrucciones aquí: Crear una biblioteca estática usando Mecurial y la "Instalación de la biblioteca estática Core-Plot" desde el wiki que se encuentra aquí: code.google.com/p/core-plot/wiki/UsingCorePlotInApplications

Estoy publicando esto para gente como yo, con poca experiencia, ya que es bastante simple y autoexplicado.


Por lo que parece, deberá reconstruir la biblioteca libCorePlot con Xcode 4.5GM para que haya una compilación ARMV7S de la biblioteca. Parece como si estuviera tratando de usar la versión que construiste con el Xcode anterior.


Simplemente compilé la biblioteca core-plot y seguí la instalación del Proyecto dependiente desde este enlace code.google.com/p/core-plot/wiki/UsingCorePlotInApplications
y todo va como un amuleto (mi proyecto ahora admite tanto armv7 como armv7s sin ningún problema), además, todavía establezco Build Active Architecture Only en NO, para estar seguro de admitir todas las arquitecturas


Solo necesita eliminar armv7s de la lista de arquitecturas válidas.

sólo haz lo siguiente. -Seleccione su proyecto del Project Navigator -Seleccione su objetivo de la lista de objetivos -Seleccione la pestaña de configuración de compilación -Encuentre la configuración ''Arquitecturas válidas''. Debería decir armv7 armv7s. Elimine armv7s y solo habrá armv7 en sus arquitecturas válidas. Ahora tu proyecto se compilará correctamente.


También estoy usando la biblioteca estática Core Plot 1.0 en mi proyecto. Pude resolver el problema configurando Construir arquitecturas activas solo en . Build Active Architectures Only se encuentra en la sección Arquitectura de la configuración de construcción de Target en Xcode.

Descargué el archivo zip Core Plot 1.0, que parece estar incompleto, por lo que no puedo reconstruir las bibliotecas.


Uso la biblioteca estática Core Plot 1.0 para iOS 6.1 en Xcode 4.4. Después de actualizar a Xcode 4.5 con iOS 7.0, tuve el mismo problema que el tuyo.

Para solucionarlo, eliminé la carpeta CorePlotHeaders y libCorePlot-CocoaTouch.a en mi proyecto. Si lo elimina en Xcode, elija la opción "Mover a la Papelera".

Luego descargo CorePlot_1.4.zip desde https://code.google.com/p/core-plot/downloads/list , luego sigo Static Library Install desde https://code.google.com/p/core-plot/wiki/UsingCorePlotInApplications

Espero eso ayude


Solucione los errores del enlazador para Core Plot al usar Xcode 5

He estado usando Core Plot durante años y recibí un montón de errores de "Advertencia de vinculador de Mach-O de Apple" sobre que armv7s no admite ciertos archivos en la carpeta "CorePlotHeader" que se actualizó (carpeta eliminada actualmente en mi proyecto y arrastró el nuevo carpeta en mi proyecto) para reflejar los cambios CorePlot_1.4. También eliminé la antigua biblioteca "libCorePlot-CocoaTouch.a" y la introduje en mi carpeta de Frameworks. Todo funcionó bien en el simulador, pero no pude construir en mi iPad 4 con iOS 7.0.2.

Aquí es lo único que encontré que funciona cuando se realiza la depuración (parece funcionar cuando se archiva, etc.):

1) Haga todo lo que mencioné anteriormente, establezca Build Active Architectures en No, luego limpie

2) Es posible que obtenga un error acerca de la arquitectura "arm64" que no se admite, así que elimine la sección "arm64" de la sección "Arquitectura válida" en Configuración de compilación

3) Haga clic con el botón derecho en su archivo "MyApp.app" en su carpeta Productos cuando haga la depuración, y es posible que vea el antiguo "libCorePlot-CocoaTouch.a" (si la fecha modificada es anterior al 28/9/13) compilando con su aplicación.

4) Borre esa biblioteca y copie la nueva en la carpeta de compilación, limpie y luego reconstruya

Esto funciona para el método de "Instalación de biblioteca estática" y no se ha probado con el método de "Instalación de proyecto dependiente"