Крос компилиране на Android и зависимости

Опитвам се да разбера процеса на кръстосано компилиране по-подробно. Така че това, което знам досега, е, че ако имаме C/C++ библиотеки, можем да ги компилираме кръстосано, за да направим *.a или *.so файлове и да ги използваме чрез JNI в android.

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

така че това, което разбирам, е, че ако искам да използвам DCMTK в android, трябва да го компилирам кръстосано. Така че стартирам процеса чрез CMake-GUI и настройвам кръстосано компилиране чрез cmake-android скрипт. така че посочва правилните компилатори и т.н. за android arm arch.

но виждам в процеса, че 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