Компиляция библиотеки в C для Android

1

Я установил SDK, NDK, JDK и Cygwin. Я хочу знать, нужно ли мне редактировать код библиотек, чтобы они были скомпилированы для Android (armv7).

Мне в основном нужно переносить множество приложений на C для Android, но все они зависят от сторонних библиотек, таких как PCRE, OpenSSL и т.д. Мой опыт показал мне, что PCRE компилируется без ошибок для Windows, но мы говорим об Android здесь (под управлением ядра Linux).

И мне нужно написать C-оболочку для КАЖДОЙ функции в библиотеке для соответствия соглашениям о вызове JNI?

  • 0
    Обертки требуются только для тех функций, которые вы будете вызывать из Java. Поскольку вы портируете приложения на C, вам не нужно много оболочек.
  • 0
    Но, как я уже сказал, портирование одного приложения требует компиляции необходимой библиотеки для Linux на архитектуре ARM.
Теги:
android-ndk

1 ответ

1
Лучший ответ

Android NDK будет компилировать стандартный синтаксис C, но Android не имеет той же библиотеки stdlib C, что и настольные компьютеры; вместо этого у него есть своя альтернатива, называемая Bionic. Иногда, когда вы компилируете большие проекты, вы запускаете вызовы функций stdlib, которые не поддерживаются bionic, и вы должны установить небольшое обходное решение.

Иногда в популярных библиотеках есть существующие обертки JNI, иначе вы должны сделать JNI-вызов для функций, которые вызовут ваши приложения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню