Lê *_*Huy 2 java-native-interface android android-ndk
在Android NDK旧版本中,我们包含GLES,如下所示:
LOCAL_LDLIBS += -lGLESv1_CM
Run Code Online (Sandbox Code Playgroud)
但在最新版本中,Android使用CMakeLists而不是Android.mk具有相同的目的.那么如何将GLES/GLES2/GLES3依赖项添加到CMakeList文件中呢?谢谢!
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.
Run Code Online (Sandbox Code Playgroud)
命令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'
}
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
干杯
垂发.