My app.cpp:Biên soạn với NDK cho lỗi cho các tập tin tiêu đề bao gồm thành công
#include "app.h"
#include <EGL/egl.h>
#include <EGL/eglext.h>
void
Java_com_geek_hello_FilterStack_nativeEglSetFenceAndWait(JNIEnv* env, jobject thiz) {
EGLDisplay display = eglGetCurrentDisplay();
// Create a egl fence and wait for egl to return it.
// Additional reference on egl fence sync can be found in:
// http://www.khronos.org/registry/vg/extensions/KHR/EGL_KHR_fence_sync.txt
EGLSyncKHR fence = eglCreateSyncKHR(display, EGL_SYNC_FENCE_KHR, NULL);
if (fence == EGL_NO_SYNC_KHR) {
return;
}
...
Khi tôi chạy ndk-build, nó thất bại tìm kiếm các phương pháp hiện diện trong egl.h và .so không được tạo ra. Dưới đây là các bản ghi:
app.cpp:31:72: error: 'eglCreateSyncKHR' was not declared in this scope
Tiếp theo tất cả các phương pháp KHR thuộc về
Dưới đây là Android.mk
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
#LOCAL_CFLAGS += -DEGL_EGLEXT_PROTOTYPES
LOCAL_CFLAGS = -Wno-psabi
LOCAL_SRC_FILES := app.cpp
#LOCAL_SHARED_LIBRARIES := libcutils libEGL
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := libapp
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv2
include $(BUILD_SHARED_LIBRARY)
Tôi đã thêm điều đó. Đây là lỗi mới. Trong tệp bao gồm từ /Users/geek/code/app/jni/app.h:20:0, từ /Users/geek/code/app/jni/app.cpp:17: /android-14/arch -arm/usr/include/jni.h: 592: 13: lưu ý: xoài của 'va_list' đã thay đổi trong GCC 4.4 /Users/geek/code/app/jni/jni_egl_fence.cpp: Trong hàm 'void Java_com_android_gallery3d_photoeditor_FilterStack_nativeEglSetFenceAndWait (JNIEnv *, jobject) ': /Users/geek/code/app/jni/app.cpp:31:72: lỗi:' eglCreateSyncKHR 'không được khai báo trong phạm vi này – Taranfx
Điều này có nghĩa là gì? Tôi không có ý tưởng về c + +. "mangling của 'va_list' đã thay đổi trong GCC 4.4" – Taranfx
app.h: 20 là #include –
Taranfx