El file gordo de la biblioteca no funciona

Estoy intentando usar el file gordo para Boost 1.54.0 en mi proyecto iOS. Aquí hay información sobre el file de resultados del command lipo -detailed_info :

 Fat header in: boost.framework/boost fat_magic 0xcafebabe nfat_arch 5 architecture armv7 cputype CPU_TYPE_ARM cpusubtype CPU_SUBTYPE_ARM_V7 offset 108 size 2963176 align 2^2 (4) architecture armv7s cputype CPU_TYPE_ARM cpusubtype CPU_SUBTYPE_ARM_V7S offset 2963284 size 3079048 align 2^2 (4) architecture i386 cputype CPU_TYPE_I386 cpusubtype CPU_SUBTYPE_I386_ALL offset 8916872 size 2830880 align 2^2 (4) architecture x86_64 cputype CPU_TYPE_X86_64 cpusubtype CPU_SUBTYPE_X86_64_ALL offset 11747752 size 3015296 align 2^2 (4) architecture arm64 cputype CPU_TYPE_ARM64 cpusubtype CPU_SUBTYPE_ARM64_ALL offset 6042332 size 2874540 align 2^2 (4) 

Cuando trato de build para un dispositivo real (iPad Mini Retina, arm64 ) obtengo un error de enlace:

 ld: archive has no table of contents file 'boost.framework/boost' for architecture arm64 

Podría build para el simulador armv7 sin errores. ¿Cuál podría ser una razón del error?

Tuve el mismo problema y lo solucioné de esta manera:

 ranlib yourlibrary.a 

Actualiza mi propia respuesta:

¡La respuesta de Hyndrix salvó mi día!

Después de leer su respuesta, traté de usar

ranlib src/boost-xcode5-iosx/ios//build/arm64/libboost.a

Pero no funciona.

Entonces probé rablib src/boost-xcode5-iosx/ios/framework/boost.framework/boost

Recibí algunos loggings como: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: for architecture: armv7 file: /Users/src/boost-xcode5-iosx/ios/framework/boost.framework/boost(libboost_serialization_stl_port.o) has no symbols /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: for architecture: armv7s file: /Users/src/boost-xcode5-iosx/ios/framework/boost.framework/boost(libboost_serialization_stl_port.o) has no symbols /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: for architecture: i386 file: /Users/src/boost-xcode5-iosx/ios/framework/boost.framework/boost(libboost_serialization_stl_port.o) has no symbols /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: for architecture: x86_64 file: /Users/src/boost-xcode5-iosx/ios/framework/boost.framework/boost(libboost_serialization_stl_port.o) has no symbols

Pero luego reconstruyo el proyecto Xcode, finalmente funciona para iOS Device ahora.

Muchas gracias y te di una votación.

John, deberías marcar su respuesta como la correcta.

Creo que es porque estás intentando comstackrlo para el tipo "Dispositivo iOS" que no sea el dispositivo real.

Funciona bien si se elige el dispositivo o simulador real.

Pero está mostrando exactamente el mismo post de error si elijo "Dispositivo iOS".

Espero que esto te ayudará.

introduzca la descripción de la imagen aquí

Intereting Posts