将GLES包含在Android NDK中的CMakeLists中

时间:2017-02-08 03:06:12

标签: android android-ndk java-native-interface

在Android NDK旧版本中,我们包含GLES,如下所示:

LOCAL_LDLIBS += -lGLESv1_CM

但在最新版本中,Android使用CMakeLists而不是Android.mk具有相同的目的。那么如何将GLES / GLES2 / GLES3依赖项添加到CMakeList文件中呢?谢谢!

1 个答案:

答案 0 :(得分:5)

gradle脚本ndk模块和cmakelist外部工具之间的区别在于定义脚本的方式。在这种情况下,  您需要创建CMake脚本(CMakeLists.txt,并更改您的gradle文件以激活外部工具):

CMakelists:

cmake_minimum_required(VERSION 3.4.1)

# now build app's shared lib
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")

add_library(gljni SHARED
            your_code.cpp)

# add lib dependencies
target_link_libraries(gljni
                      android
                      log 
                      EGL
                      GLESv2) #here you can put your opengl linking library. 

命令target_link_libraries指定它们将要链接的库。

在gradle文件中,您需要指定外部本机构建,添加cmake选项,如编译器,android本机版等。

 externalNativeBuild {
            cmake {
                // Available argumetns are inside ${SDK}/cmake/.../android.toolchain.cmake file
                arguments '-DANDROID_PLATFORM=android-9',
                          '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=gnustl_static'
            }
        }

希望这会有所帮助。

干杯

垂发。