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

Discussion in 'Web Call Server 5' started by Roman13, May 15, 2017.

  1. Roman13

    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 или попробовать поменять порядок компилируемых файлов, но результата это не дало.
  2. Max

    Max Administrator Staff Member

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

    Roman13 New Member

    Спасибо. Выслал письмо со ссылкой.
  4. Max

    Max Administrator Staff Member

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

    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: May 17, 2017
  7. Спасибо!

Share This Page