Open GL ES - GLM 库和 Android Studio
Open GL ES - GLM Library and Android Studio
我正在尝试将我为 iOS 应用程序编写的一个 C++ Open GL ES 框架导入 Android 应用程序。
我想使用 Android NDK 来导入这个框架。
由于框架将在 iOS 和 Android 之间共享,我将其放在 jni 文件夹之外。我在成绩文件中指定了该框架的源目录路径,如下所示 (http://tools.android.com/tech-docs/new-build-system/gradle-experimental#TOC-Source-Set):
在此框架中,我使用 GLM 库进行数学运算,但正如您从上面的屏幕截图中再次看到的那样,当我尝试编译项目时收到错误消息:
/Users/chicio/Desktop/SpectralBRDFExplorer/SpectralBRDFExplorer/glm/detail/glm.cpp:4:10: 致命错误: 'glm/glm.hpp' 找不到文件
我做错了什么?
我自己找到了解决问题的方法。
如前所述,这是包含目录设置中的问题。
我通过在 gradle 文件中指定使用 C++ 标志 -I 的包含目录来编译应用程序
您可以在这里找到完整的 gradle 文件:
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion 24
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "it.chicio.android.spectralbrdfexplorer"
minSdkVersion.apiLevel 22
targetSdkVersion.apiLevel 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles.add(file('proguard-android.txt'))
}
}
ndk {
moduleName "LibOpenGLJNI"
toolchain = 'clang'
stl = 'gnustl_static'
CFlags.addAll(['-Wall'])
cppFlags.addAll(['-std=c++11','-Wall',
'-I' + file('src/main/jni'),
'-I' + file('../../SpectralBRDFExplorer'),
'-I' + file('../../SpectralBRDFExplorer/lodepng')])
ldLibs.addAll(['android', 'log', 'GLESv3'])
}
sources {
main {
jni {
source {
srcDir "../../SpectralBRDFExplorer"
}
}
}
}
sources {
main {
assets {
source {
srcDir "../../Assets"
}
}
}
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:design:24.2.0'
}
我正在尝试将我为 iOS 应用程序编写的一个 C++ Open GL ES 框架导入 Android 应用程序。 我想使用 Android NDK 来导入这个框架。 由于框架将在 iOS 和 Android 之间共享,我将其放在 jni 文件夹之外。我在成绩文件中指定了该框架的源目录路径,如下所示 (http://tools.android.com/tech-docs/new-build-system/gradle-experimental#TOC-Source-Set):
在此框架中,我使用 GLM 库进行数学运算,但正如您从上面的屏幕截图中再次看到的那样,当我尝试编译项目时收到错误消息:
/Users/chicio/Desktop/SpectralBRDFExplorer/SpectralBRDFExplorer/glm/detail/glm.cpp:4:10: 致命错误: 'glm/glm.hpp' 找不到文件
我做错了什么?
我自己找到了解决问题的方法。 如前所述,这是包含目录设置中的问题。 我通过在 gradle 文件中指定使用 C++ 标志 -I 的包含目录来编译应用程序 您可以在这里找到完整的 gradle 文件:
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion 24
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "it.chicio.android.spectralbrdfexplorer"
minSdkVersion.apiLevel 22
targetSdkVersion.apiLevel 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles.add(file('proguard-android.txt'))
}
}
ndk {
moduleName "LibOpenGLJNI"
toolchain = 'clang'
stl = 'gnustl_static'
CFlags.addAll(['-Wall'])
cppFlags.addAll(['-std=c++11','-Wall',
'-I' + file('src/main/jni'),
'-I' + file('../../SpectralBRDFExplorer'),
'-I' + file('../../SpectralBRDFExplorer/lodepng')])
ldLibs.addAll(['android', 'log', 'GLESv3'])
}
sources {
main {
jni {
source {
srcDir "../../SpectralBRDFExplorer"
}
}
}
}
sources {
main {
assets {
source {
srcDir "../../Assets"
}
}
}
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:design:24.2.0'
}