我怎么称呼" glEnable"使用Android NDK?

时间:2017-06-02 15:04:59

标签: android c++ android-ndk

我试图进行世界上最简单的Android环境测试,只是为了在攻击端口之前连接所有的鸭子。

我需要做的第一件事就是链接GLES 1.0 ......这是我采取的步骤:

ONE:使用Android Studio 2.3.2,我创建了一个带有基本活动的新C ++项目

TWO:在AndroidManifest.xml中我添加了这个:

<uses-feature android:glEsVersion="0x00010000" />

三:在CMakeLists.txt中我添加了以下几行:

find_package( ZLIB REQUIRED )
find_library( GLES1_LIBRARY names GLESv1_CM )
include_directories( ${ZLIB_INCLUDE_DIRS} ${GLES_INCLUDE_DIRS} )
...
target_link_libraries( # Specifies the target library.
                   native-lib
                   ${ZLIB_LIBRARIES}
                   ${GLES1_LIBRARIES}
                   ${log-lib} )

适用于log-lib,它也适用于zlib ......它不适用于GLES1(参见下一步)

四:我刚给native-lib.cpp添加了一行简单的

 glEnable(GL_BLEND);

点击编译并......

CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o: In function `Java_com_game_raptisoft_myapplication_MainActivity_stringFromJNI':
C:\Users\Raptisoft2011\Desktop\Android\MyApplication\app\src\main\cpp/native-lib.cpp:12: undefined reference to `glEnable'

如何解决此问题?我需要包含更多链接语句吗?我尝试过GLES1_LIBRARY的各种迭代(比如GLES_LIBRARY等),但没有任何效果。

1 个答案:

答案 0 :(得分:0)

尝试

target_link_libraries( # Specifies the target library.
               native-lib
               ${ZLIB_LIBRARIES}
               EGL
               GLESv1_CM
               ${log-lib} )

此外,您已定位${GLES1_LIBRARIES},但您已将其拼写为GLES1_LIBRARY

如果可以,我建议移植到gles2。您最不用担心的是编写着色器,它可以让您更好地控制数据的绘制方式。

BTW,这是使用PopCap框架创建Chuzzle的Rapitsoft吗?