El archivo es universal (tres sectores), pero no contiene un error de sector ARMv7-s para bibliotecas estáticas en iOS, ¿de todos modos se puede omitir?

Resuelto Dafna Elazazer asked hace 54 años • 8 respuestas

Actualicé la versión de Xcode y cuando uso bibliotecas estáticas externas, aparece este mensaje:

ld: el archivo es universal (3 segmentos) pero no contiene un segmento armv7s: /archivo/ubicación para la arquitectura armv7s clang: error: el comando del vinculador falló con el código de salida 1 (use -v para ver la invocación)

¿Hay alguna forma de evitar esto y agregar soporte a la biblioteca si el desarrollador de la biblioteca aún no ha actualizado su biblioteca?

Dafna Elazazer avatar Jan 01 '70 08:01 Dafna Elazazer
Aceptado

Si desea eliminar el soporte para cualquier arquitectura, por ejemplo, ARMv7-s en su caso, use el menú Proyecto -> Configuración de compilación -> eliminar la arquitectura de "arquitecturas válidas".

Puede utilizar esto como solución temporal hasta que se actualice la biblioteca. Tienes que eliminar la arquitectura de tu proyecto principal, no de la biblioteca.

Alternativamente, puede establecer el indicador para "Construir solo arquitectura activa" de su configuración de depuración en Sí. Deje "Construir solo arquitectura activa" en la configuración de lanzamiento en No, para recibir un recordatorio antes del lanzamiento de que debe actualizar las bibliotecas de terceros que esté utilizando.

Nicholas avatar Sep 13 '2012 09:09 Nicholas

Simplemente cambié "Construir solo arquitectura activa" a "Sí" en la configuración de compilación del objetivo, ¡y ya está bien!

Blasco73 avatar Sep 16 '2012 19:09 Blasco73

Intente eliminar armv7s de la "Arquitectura válida" del proyecto para solucionar este problema en teléfonos con iOS 5.1.

Arthur Jen avatar Sep 14 '2012 07:09 Arthur Jen

Acabo de publicar una solución aquí que también se aplicaría en este caso; básicamente, realiza una búsqueda y reemplazo hexadecimal en su biblioteca externa para que piense que es código ARMv7s. Debería poder usarlo lipopara dividirlo en 3 bibliotecas estáticas, duplicar/modificar el ARMv7 y luego usarlo liponuevamente para ensamblar una nueva biblioteca para las 4 arquitecturas.

Ertebolle avatar Sep 13 '2012 18:09 Ertebolle