2012-03-09 55 views
3

我正在为Android 2.3.3的本机活动应用程序工作。我从代码示例中复制了代码,我设置了包含路径,但Eclipse(Indigo)仍然找不到这个常量。类型'EGL_DEFAULT_DISPLAY'无法解析错误,而常数明确定义

EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY); //Type 'EGL_DEFAULT_DISPLAY' could not be resolved 

但是编译器没有显示错误:

Compile++ thumb : NativeTest <= NativeTest.cpp 

任何想法,为什么?

回答

8

这个错误与Eclipse没有定义__ ANDROID__,这使得它不能在EGL/eglplatform.h中定义EGLNativeDisplayType,这导致EGL_DEFAULT_DISPLAY也没有被定义。

要解决这个问题去你的项目的属性并转到“C/C++常规 - >路径和符号”页下的GNU C“符号”选项卡中单击,然后在“添加”按钮,并把

__ANDROID__ 

在名称feild中,然后单击确定。你可以为GNU C++做同样的事情。

+0

适合我,谢谢。 – Moonkid 2012-07-28 09:11:54

+1

我没有得到“C/C++常规 - >路径和符号”下的“符号”选项卡。现在做什么 ? – Mayank 2014-02-26 13:35:27

1

您也可以只添加:

typedef void* EGLNativeDisplayType; 

包括egl.h.前

+0

为什么我需要这样做,如果'egl.h'包含相同的定义? – CAMOBAP 2014-07-12 07:58:24