Перезапись символов в статических библиотеках iOS
Я работаю над приложением для iOS, которое связывает несколько статических библиотек. Проблема в том, что эти связанные библиотеки определяют одни и те же имена методов в разных реализациях. Странно, я нене понимаюduplicate symbol definition
ошибки; но, что неудивительно, я получаю доступ только к одной реализации метода.
Чтобы быть более ясным, скажем, у меня есть libA и libB, и они оба определяют глобальный метод C с именем func1 ()
Когда я связываю libA и libB и вызываю func1 (), он разрешается либо libA 's или libB 'Реализация без предупреждения компиляции. Мне, однако, нужно иметь доступ к обеим библиотекамs func1 () и libB 's func1 () отдельно.
Там'похожий пост это объясняет, как это можно сделать в C (с помощью переименования символов), но, к сожалению, как я выяснил,objcopy
инструмент неработать на архитектуру ARM (следовательно, iPhone).
(Я отправлю его в App Store, следовательно, динамическое связывание не вариант)