Ich versuche gerade ein natives Modul mit Androids NDK zu erstellen. Mein Projekt besteht aus mehreren Quelldateien (z. B. FILENAME .c) und für jede von ihnen muss ich eine Definition in ihren CFLAGS (-DOPERATION_FILENAME) deklarieren.Wie kann der Name des aktuellen Compilerziels dynamisch in LOCAL_CFLAGS von Android.mk abgerufen werden?
Um dies zu tun, muss ich dynamisch den Namen der aktuellen Zieldatei des Android NDK-Cross-Compilers abrufen und für den definierten Wert verwenden.
Ich konnte keine Informationen finden, wie diese und die Makefile Art und Weise zu tun (CFLAGS + = -DOPERATION_ echo $* | sed 's/_$$//'
) gilt hier nicht/Arbeit.
Mein aktueller Android.mk sieht wie folgt aus:
LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_ARM_MODE := arm
LOCAL_MODULE := libmpn
LOCAL_SRC_FILES := \
<cut>
LOCAL_CFLAGS := \
-std=gnu99 \
-DHAVE_CONFIG_H \
-D__GMP_WITHIN_GMP \
-O2 \
-pedantic \
-fomit-frame-pointer \
-mfloat-abi=softfp \
-DOPERATION_`echo $* | sed 's/_$$//'`
include $(BUILD_SHARED_LIBRARY)
jemand eine Arbeits Art und Weise kennt den Dateinamen des aktuellen Cross-Compiler Ziel in Android.mk zu bekommen? Vielen Dank!
Danke, es hat funktioniert! – wallen
Würde dies nicht einen Windows-basierten NDK-Build brechen? – gladed
@gladed Ich weiß nicht, warum das unter Windows anders sein könnte. Aber dieser Hack hängt von Implementierungsdetails ab, die in der neuen Version von NDK brechen können. –