Ich habe gerade angefangen OpenGL ES auf Android zu lernen (mit diesem Buch ) und stieß auf ein Problem von Quelle Code aus Kapitel 5 zu bestehenden Methoden der Verwendung von jni in Android (eigentlich betrifft es auch einfach eine native GL-App ). Ich versuche, den nativen Code zu kompilieren, um die .so lib zu erhalten und sie weiter im .apk-Archiv zu verwenden. Eine Kompilierung ist jedoch nicht möglich, wenn bestimmte Bibliotheken nicht vorhanden sind (GLES / gl.h, EGL / egl.h, GLES / gl.h, GLES / glext.h).
Die Frage ist also, wie installiere ich diese Bibliotheken (AFAIU, OpenGL ES und EGL Installation) und kompiliere den einfachsten nativen Code? (Tutorials werden sehr bewundert).
Vielen Dank im Voraus.
EDIT: Ich habe das glbuffer Beispiel wie vorgeschlagen (leicht geänderte .mk Datei) versucht, aber immer noch keinen Erfolg. Compiler gibt mir das gleiche Ergebnis wie zuvor:
ndk-build
Kompilieren Sie den Daumen: egl & lt; = cube.c
/path/jni/cube.c:5:21: Fehler: GLES / gl.h: Keine solche Datei oder Verzeichnis // dieselbe Nachricht für glbuffer, wenn gl.h eingeschlossen wird
Hier ist der cube.c-Code:
%Vor%Es ist schrecklich trivial und funktioniert noch nicht.
Android.mk:
%Vor%Diese Bibliotheken werden von Android selbst bereitgestellt. Das Einrichten Ihres Projekts, um sie zu finden und Ihren JNI (nativen) Code korrekt zu kompilieren, kann jedoch abschreckend sein.
Ich empfehle, glbuffer als Startprojekt zu verwenden, da es dir eine GLSurfaceView
bietet, auf die du dich beziehen kannst mit den richtigen Android-Bibliotheken.
Die Details der Verknüpfung mit den Android-Bibliotheken sind in jni/Android.mk
in diesem Projekt enthalten, wenn Sie es selbst von Grund auf neu erstellen möchten.
Bearbeiten - anscheinend fehlt glbuffer jni/Application.mk
. Erstelle es und lege es hinein:
Dann wird der ndk wissen, in die android-8-Plattform für Ihre Includes zu schauen. Sie können dies bei Bedarf zu anderen Versionen ändern.
Ich habe das NDK nach Instanzen der Header-Datei "EGL / egl.h" durchsucht. Dieses spezielle Beispiel wird auf Android-API-Ebene 15 kompiliert und ausgeführt, aber einige andere API-Ebenen haben keine Kopfzeile.
Tags und Links compilation c android android-ndk opengl-es