【问题标题】:Android Studio IDE can't find NDK header filesAndroid Studio IDE 找不到 NDK 头文件
【发布时间】:2017-10-02 14:57:26
【问题描述】:

我在 C++ 代码中的 android 应用程序中使用 OpenGL ES2。 编译和执行程序按计划工作,但是 IDE 本身找不到 NDK 头文件,这让我的代码文件很难看:

我的 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"
    }
}

我该怎么做才能解决这个问题?谢谢!

【问题讨论】:

    标签: android c++ android-studio cmake android-ndk


    【解决方案1】:

    我简直不敢相信。 解决方法是使用其他斜杠。 所以而不是:

    #include <GLES2\gl2.h>
    

    #include <GLES2/gl2.h>
    

    它仍然可以正常编译,并且预览和编译都可以在我之前使用的 Visual Studio 中工作。

    【讨论】:

      【解决方案2】:

      您是否使用“include_directories”将头文件添加到您的 cmake 文件中?

      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
                            )
      

      【讨论】:

        猜你喜欢
        • 2011-06-03
        • 2018-05-16
        • 2015-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多