Я получил похожую ошибку, когда собирал libssh2 для iPhone, и после долгих поисков я понял, что моя сборка .arm фактически была построена для i386 (мой MacBook Pro).
Я зашел так далеко, что скомпилировал libssh2 для ARMv6 (устройство), i386 (компьютер) и x86_64 (симулятор), просто чтобы убедиться, что каждая версия собрана правильно.Затем я объединил архитектуры arm и x86_64, используя lipo.У меня есть помеченный комментарий в моих заметках, что «make clean» и «make distclean» - ваши друзья », так что, возможно, если вы сначала создали библиотеку для своей машины, у нее все еще был файл конфигурации для этого, когда вы создавали для iPhone.
Я использовал команды "lipo -info libldap.a.arm" и "file libldap.a.arm" (модифицированные для ваших имен файлов), чтобы увидеть дополнительную информацию о типе сборки.К вашему сведению, как только они построены правильно, эти команды показали архитектуры «arm» и «x86_64».
Последнее, что я заметил - код в приведенной выше ссылке на github на самом деле содержит предварительно скомпилированные универсальные двоичные файлы для libldap.и liblber.a.После того, как я возился с созданием библиотек, я заметил это и просто использовал эти два файла с файлом ldap.h, и я был в порядке.