Кросс-компиляция Android и зависимостей

Я пытаюсь понять процесс кросс-компиляции более подробно. Итак, что я знаю до сих пор, так это то, что если у нас есть какие-либо библиотеки C / C ++, мы можем кросс-компилировать их для создания файлов * .a или * .so и использовать их через JNI в Android.

Допустим, у нас есть один исходный код библиотеки, пусть это исходный код DCMTK (набор инструментов dicom), который зависит от libpng / libxml2 и многих других ..DCMTK использует CMake в качестве системы сборки.

Итак, я понимаю, что если я хочу использовать DCMTK в android, мне нужно его кросс-компиляцию. Итак, я запускаю процесс с помощью CMake-GUI и настраиваю кросс-компиляцию с помощью скрипта cmake-android. поэтому он указывает правильные компиляторы и т. д. для арки руки Android.

но я вижу в процессе, что cmake берет много библиотек из моей системы Linux, например: libpng / libxml2.

Вопрос: Поскольку cmake берет некоторые двоичные файлы и т. Д. Из системы Linux (которые скомпилированы для системы Linux, а не для Android), и мы кросс-компилируем только DCMTK, а не их зависимость, так как это будет работать? я должен кросскомпилировать зависимости с кросс-компилятором?


person Kirtan    schedule 14.11.2014    source источник


Ответы (1)


Да, все зависимости DCMTK должны быть скомпилированы и связаны с библиотекой bionic C и все они должны быть частью вашего окончательного приложения.

person yegorich    schedule 14.11.2014