Библиотека толстых файлов не работает

Я пытаюсь использовать толстый файл для 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".

Надеюсь, что это поможет вам.

введите описание изображения здесь

Другие вопросы по тегам