我在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"
}
}
我该怎么做才能解决这个问题?谢谢!
答案 0 :(得分:1)
我无法相信这一点。 修复是使用其他斜杠。 所以而不是:
#include <GLES2\gl2.h>
DO
#include <GLES2/gl2.h>
它仍然编译得很好,预览和编译都在我之前使用的Visual Studio中工作。
答案 1 :(得分:0)
您是否已使用“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
)