android - Open GL ES - GLM 库和 Android Studio

标签 android android-studio opengl-es android-ndk glm-math

我正在尝试将我为 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):

enter image description here

在此框架中,我使用 GLM 库进行数学运算,但正如您从上面的屏幕截图中再次看到的那样,当我尝试编译项目时,我收到错误:

/Users/chicio/Desktop/SpectralBRDFExplorer/SpectralBRDFExplorer/glm/detail/glm.cpp:4:10: fatal error :找不到“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'
}

关于android - Open GL ES - GLM 库和 Android Studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39401714/

相关文章:

android - 如何像提醒一样显示通知?

java - 在 android studio 3.1.3 中集成任何库时无法解决依赖性错误

android - 如何使用 Android Studio 3.3 修复即时应用程序

c++ - 编译 IOS 应用程序时出现库问题

opengl-es - OpenGL 固定函数着色器实现

Android如何使用自定义选择器制作涟漪效果

java - 将 AdapterView 与抽屉导航结合起来

iphone - 帧缓冲区对象问题

java - 从 Assets 文件夹加载 ~200mb 文件时出现 OutOfMemoryError

android - 如何在 Android Studio 3.0 中摇动 Android Emulator 设备?