Компилирование библиотек для Android NDK - PullRequest
1 голос
/ 06 января 2020

Android нуб здесь. Я пытаюсь создать приложение Android на основе OpenGL ES, которое будет запускать нативный код, и я использую CMake для его сборки.

Теперь у меня есть библиотека C ++, которую мне нужно включить, импортировать и связать (.a файлы) с кодом Android NDK. Я понимаю, что библиотеку нужно кросс-компилировать для Android, но сработает ли она, если вместо этого я соберу только Linux двоичные файлы (файлы .a) и свяжу ее с ней?

Кроме того, библиотека C ++ построен с использованием Windows платформ и CMake, который генерирует .lib (stati c lib версия windows). Каков наилучший способ создания файлов .a на платформах Windows (stati c lib версия Linux из Windows)?

1 Ответ

1 голос
/ 06 января 2020

Теперь у меня есть библиотека C ++, которую мне нужно включить, импортировать и связать (файлы .a) с кодом Android NDK. Я понимаю, что библиотеку нужно кросс-компилировать для Android, но сработает ли она, если вместо этого я соберу только Linux двоичные файлы (файлы .a) и свяжу ее с ней?

«т. Это потому, что они просто разных платформ. Оба они используют один и тот же формат (.a), но это не значит, что они совместимы. Например, они используют разные стандартные библиотеки. Поэтому вы должны сделать кросс-компиляцию для Android.

. Кроме того, библиотека C ++ построена с использованием Windows платформ и CMake, который генерирует .lib (stati c lib версия windows). Каков наилучший способ создания файлов .a на платформах Windows (stati c lib версия Linux из Windows)?

Поскольку ваша библиотека C ++ использует CMake и Android NDK официально поддерживает сборку CMake, это не будет так сложно.

Вы можете скачать Android NDK для Windows. Тогда попробуйте CMake guide . По сути, вы должны передать файл набора инструментов в качестве аргумента CMake (плюс некоторые аргументы, такие как ABI, уровень API, ...). Так что вам не нужно редактировать ваш файл CMake, вероятно.

...