Ich teste einige native Bibliothekscodes mit dem Android NDK (android-ndk-r8e). Die native Bibliothek wird aus dem Makefile und nicht aus dem modifizierten Build-System von Android erstellt. Die Verwendung des Makefile anstelle des Build-Systems von Android ist eine Projektanforderung (OpenSSL und FIPS).
Die Bibliothek muss für API 14 (Android 4.0), API 16 (Android 4.1) und API 17 (Android 4.2) erstellt werden. Obwohl wir das Makefile der Bibliothek verwenden, verwenden wir die vorgefertigte Toolchain von android-ndk-r8e-linux-x86_64 (arm-linux-androideabi-4.7 und Freunde).
Es scheint, dass stdlib.h
von 2 der 3 APIs fehlt. Zum Beispiel ist unten ein Versuch, für API 17 zu kompilieren.
Gestützt auf Feedback von Auselen und Chris habe ich versucht, eine Toolchain für API 17 zu erstellen. Es ist fehlgeschlagen:
%Vor%Wie behandelt man fehlende Header im NDK?
%Vor% Sie sollten eine eigenständige Toolchain von NDK erstellen. und verwenden Sie diese, um Ihre native Bibliothek zu erstellen.
Wahrscheinlich müssen Sie Umgebungsvariablen wie CC
, LD
in der Befehlszeile oder Makefile so ändern, dass sie auf die gcc
dieser neuen Toolchain verweisen. Etwas wie:
Tags und Links android android-ndk jni