2017-10-02 3 views
1

J'utilise OpenGL ES2 dans une application Android à l'intérieur du code C++. Compiling et l'exécution du programme fonctionne comme prévu, mais l'IDE lui-même ne peut pas trouver les fichiers d'en-tête NDK laissant mon code fichiers laid:Android Studio IDE ne trouve pas les fichiers d'en-tête NDK

Code file with include errors

Mon fichier CMake:

cmake_minimum_required(VERSION 3.4.1) 
add_library(native-lib 
     SHARED 
     openGLRenderer.cpp 
     androidInterface.cpp 
      ) 
target_link_libraries(native-lib 
        android 
        log 
        EGL 
        GLESv2 
        ) 

build.gradle:

... 
    externalNativeBuild { 
     cmake { 
      cppFlags "-frtti" 
      arguments '-DANDROID_PLATFORM=android-21', 
        '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=gnustl_static' 
     } 

...

externalNativeBuild { 
    cmake { 
     path "src/main/cpp/CMakeLists.txt" 
    } 
} 

Que dois-je faire pour résoudre ce problème? Je vous remercie!

Répondre

1

Je ne peux pas y croire. La solution consiste à utiliser les autres barres obliques. Ainsi, au lieu de:

#include <GLES2\gl2.h> 

do

#include <GLES2/gl2.h> 

Il encore compilé fin et à la fois aperçu et compilent travaillé dans Visual Studio où je l'avais avant.

0

Avez-vous ajouté les fichiers d'en-tête à votre fichier cmake avec "include_directories"?

cmake_minimum_required(VERSION 3.4.1) 
project(GL3Lib) 
# now build app's shared lib 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wc++11-extensions -Werror -Wno-deprecated -std=c++11") 

add_subdirectory(freetype) 
include_directories(freetype/include) 
include_directories(common) 
include_directories(utils) 
include_directories(rendering/text) 

file(GLOB UTILS_HEADERS "utils/*.h") 
file(GLOB COMMON_HEADERS "common/*.h") 
file(GLOB TEXT_HEADERS "rendering/text/*.h") 
file(GLOB UTILS_HEADERS "utils/*.h") 

set(JNI_SRCS 
    JNI_Api.cpp) 
set(TEXT_SRCS 
    rendering/text/Font.cpp 
    ) 
set(UTIL_SRCS 
    common/Utils.cpp 
    ) 


add_library(gl3 SHARED 
      ${JNI_SRCS} 
      ${TEXT_SRCS} 
      ${UTIL_SRCS} 
      ${UTILS_HEADERS} 
      ) 


# MESSAGE(STATUS "CMAKE_SOURCE_DIR:   " ${CMAKE_SOURCE_DIR}) 

# add lib dependencies 
target_link_libraries(gl3 
         android 
         freetype 
         log 
         EGL 
         GLESv3 
        )