Ich habe einige Probleme mit dem Android NDK (zum ersten Mal) und kompilieren eine einfache C-Datei. Das Seltsame ist, dass ich diese Kompilierungsfehler auf den Standard-Header-Dateien selbst bekomme, von denen ich erwarte, dass keine Fehler in diesen generiert werden, wenn ich nicht alle Include-Dateien einschließe. Hier ist, was ich getan habe ...Android NDK Standard Header Datei kompilieren Fehler
Dies läuft gut und erstellt die entsprechende Header-Datei. Ich führe dann den Android ndk C-Compiler auf meiner verbundenen C-Datei aus, aber ich bekomme Fehler in den Standard-Header-Dateien. Mein Befehl lautet wie folgt (verkürzt absolute Pfade zur besseren Lesbarkeit)
...android-ndk-r11c-windows-x86_64\android-ndk-r11c\toolchains\x86_64-4.9\prebuilt\
windows-x86_64\bin\x86_64-linux-android-gcc.exe -I ...jdk1.6.0_35\include -I
...android-ndk-r11c-windows-x86_64\android-ndk-r11c\platforms\android-18\arch-x86\usr\
include -I ...jdk1.6.0_35\include\win32 -c myCFile.c
ich die folgenden Fehler verursacht werden, wenn dies zu tun:
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:621:25: error: expected ')' before '*' token
jcharArray (JNICALL *NewCharArray)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:623:26: error: expected ')' before '*' token
jshortArray (JNICALL *NewShortArray)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:625:24: error: expected ')' before '*' token
jintArray (JNICALL *NewIntArray)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:627:25: error: expected ')' before '*' token
jlongArray (JNICALL *NewLongArray)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:629:26: error: expected ')' before '*' token
jfloatArray (JNICALL *NewFloatArray)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:631:27: error: expected ')' before '*' token
jdoubleArray (JNICALL *NewDoubleArray)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:634:25: error: expected ')' before '*' token
jboolean * (JNICALL *GetBooleanArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:636:22: error: expected ')' before '*' token
jbyte * (JNICALL *GetByteArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:638:22: error: expected ')' before '*' token
jchar * (JNICALL *GetCharArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:640:23: error: expected ')' before '*' token
jshort * (JNICALL *GetShortArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:642:21: error: expected ')' before '*' token
jint * (JNICALL *GetIntArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:644:22: error: expected ')' before '*' token
jlong * (JNICALL *GetLongArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:646:23: error: expected ')' before '*' token
jfloat * (JNICALL *GetFloatArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:648:24: error: expected ')' before '*' token
jdouble * (JNICALL *GetDoubleArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:651:19: error: expected ')' before '*' token
void (JNICALL *ReleaseBooleanArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include/jni.h:653:19: error: expected ')' before '*' token
void (JNICALL *ReleaseByteArrayElements)
^
C:\Program Files\Java\jdk1.6.0_35\include\win32/jni_md.h:11:19: error: expected declaration specifiers before '__declspec'
#define JNIEXPORT __declspec(dllexport)
Also, was ich falsch hier? Falscher Compiler? Include-Datei, jni.h existiert. Ich laufe auf Windows 7 Pro 64 Bit.
Vielen Dank! Genau das habe ich gebraucht! Danke für all deine Hilfe! –