Библиотека толстых файлов не работает
Я пытаюсь использовать толстый файл для Boost 1.54.0 в моем проекте iOS. Вот информация о файле результатов из 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)
Когда я пытаюсь собрать приложение для реального устройства (iPad Mini Retina, arm64), появляется ошибка ссылки:
ld: archive has no table of contents file 'boost.framework/boost' for architecture arm64
Я мог бы построить для симулятора armv7 без ошибок. В чем может быть причина ошибки?
2 ответа
У меня была такая же проблема, и я исправил ее так:
ranlib yourlibrary.a
Обновите мой собственный ответ:
Ответ Hyndrix спас мой день!!!!!!
Прочитав его ответ, я попытался использовать
ranlib src/boost-xcode5-iosx/ios//build/arm64/libboost.a
Но это не работает.
Так я попробовал rablib src/boost-xcode5-iosx/ios/framework/boost.framework/boost
Я получил несколько журналов, таких как:
/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
Но потом я перестраиваю проект Xcode, теперь он наконец работает для iOS Device.
Большое вам спасибо, и я проголосовал за вас.
Джон, ты должен пометить его ответ как правильный.
Я думаю, это потому, что вы пытаетесь создать его для типа "Устройство iOS", отличного от реального устройства.
Работает нормально, если выбрано само устройство или симулятор.
Но он показывает точно такую же ошибку, если я выбираю "Устройство iOS".
Надеюсь, что это поможет вам.