Проблема с интеграцией библиотеки в IOS проект

Roman13

New Member
Здравствуйте!
При попытке интегрировать IOS клиент Flashphoner в уже имеющийся проект столкнулся со следующей ошибкой линковки:
Code:
ld: b/bl/blx thumb2 branch out of range (21916576 max is +/-16MB): from __Z21WebRtcAecm_CreateCorev (0x001E4960) to _WebRtcSpl_CreateRealFFT (0x016CB56C) in '__Z21WebRtcAecm_CreateCorev' from /Users/roman/Desktop/whenspeak/branches/masterdev/FPWCSApi2.framework/FPWCSApi2(audio_processing.aecm_core.o) for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
В чем может быть причина? Может, нужно добавить какие-то дополнительные флаги компиляции в свойствах проекта? Находил советы поставить -mno-thumb в Other C/C++ flags или попробовать поменять порядок компилируемых файлов, но результата это не дало.
 

Max

Administrator
Staff member
Пришлите пожалуйста пример с исходниками, который компилируется отдельно, но не компилируется в связке с нашим iOS SDK.
Это может быть полный код приложения, который можно быстро собрать, или же простой пример из нескольких файлов.
Тогда мы сможем запустить сборку у себя и попытаться выяснить в чем проблема.
Архив можно присылать сюда: logs@flashphoner.com
Если больше 20M, то лучше прислать ссылку на скачивание.
 

Max

Administrator
Staff member
Получили. Проблему со сборкой воспроизвели. Возможно не хватает каких-то зависимостей. Разбираемся.
По результатам отпишу.
 
Получили. Проблему со сборкой воспроизвели. Возможно не хватает каких-то зависимостей. Разбираемся.
По результатам отпишу.
Спасибо, ожидаем.
 

Max

Administrator
Staff member
Результаты следующие.
Есть некоторое ограничение по памяти 16 мегабайт, которое действует для архитектур armv7 и armv7s.
Если в проекте подключено много фреймворков, при сборке этот лимит памяти может быть исчерпан.
Таким образом, собрать проект можно двумя способами
1) Отключить архитектуры armv7 и armv7s и собирать только под arm64
2) Удалить из проекта какой-либо фреймворк
Т.е. если удалить не WCS API фреймворк, а какой-нибудь другой, то сборка также пройдет, т.к. в этом случае лимит не будет достигнут.
Ссылка на описание проблемы с thumb2:
https://sourceware.org/bugzilla/show_bug.cgi?id=18625#c1
 
Last edited:
Top