2017-02-08 15 views
1

В Android NDK старой версии, мы включаем Глес так:Включите Глес в CMakeLists в Android NDK

LOCAL_LDLIBS += -lGLESv1_CM 

Но в последней версии, Android использует CMakeLists вместо Android.mk с той же целью. Итак, как добавить зависимость GLES/GLES2/GLES3 к файлу CMakeList? Спасибо!

ответ

4

Различия между модулем 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, такие как компилятор, андроид родную версии и т.д.

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

Надеется, что это помогает.

Cheers

Unai.

+0

Я попытался, но он все еще оставил последнюю проблему, он сказал неопределенные ссылки на функции GL, см. Эту фотографию https://flic.kr/p/RWxvCK –

+0

попытайтесь добавить ключевое слово «android» в целевые библиотеки ссылок. – uelordi

+0

По-прежнему такая же ошибка huhu бедняжка: (( –