Ошибка компоновщика для эхопечати в iOS
Я использую echoprint API для поиска песен за последние 3 месяца. Но внезапно это начало давать мне ошибки ниже. Я уже столкнулся со многими проблемами при добавлении этого API в мой проект, и теперь он начинает давать мне ошибку компоновщика. Это работало на меня ранее. Ошибка как это:
"Codegen:: Codegen (float const *, unsigned int, int)", на который ссылается: _GetPCMFromFile в File.o
clang: error: сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова)
ld: символ (ы) не найден для архитектуры i386
ld: warning: каталог не найден для опции '-LL/Users/prajaktakulkarni/Downloads/echoprint-codegen-4.12 2/src/echoprint-codegen-ios/build/Release-iphoneos' ld: warning: игнорировать файл /Users/prajaktakulkarni/Documents/Instajam/libechoprint-codegen-ios.a, отсутствует требуемая архитектура i386 в файле /Users/prajaktakulkarni/Documents/Instajam/libechoprint-codegen-ios.a (2 фрагмента) Неопределенные символы для архитектуры i386: "Codegen::Codegen(float const*, unsigned int, int)", на который ссылаются из: _GetPCMFromFile в File.o ld: символ (ы) не найден для архитектуры i386 clang: error: сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова)
2 ответа
Сообщение об ошибке говорит о том, что статическая библиотека libechoprint-codegen-ios.a не была построена для архитектуры i386, то есть архитектуры, используемой симулятором.
Вы можете узнать, для каких архитектур была создана статическая библиотека, запустив следующий код в Terminal:
lipo -info ~/Documents/Instajam/libechoprint-codegen-ios.a
Он, скорее всего, скажет вам, что он создан для armv7 и armv7s. Это будет поддерживать все, кроме самых старых iOS-устройств на момент написания статьи.
Вы можете собрать libechoprint-codegen-ios.a для запуска на симуляторе. Вот хорошая публикация stackru, если вы заинтересованы в этом: Создайте толстую статическую библиотеку (устройство + симулятор), используя Xcode и SDK 4+.
Самый простой вариант - просто подключить телефон и не беспокоиться о создании толстой статической библиотеки.:D
Недавно для меня была исправлена проблема с использованием libz.1.1.3.tbd вместо libz.tbd и, конечно, эта ссылка полезна для Echoprint iOS Missing Framework