android-studio – 如何使用Gradle Experimental Plugin设置C/C++包含路径?

Android Studio位于与我的模块的主源文件夹不同的位置时,它无法找到我的头文件. #include“SDL_config.h”语句以红色突出显示(其他#include语句很好).

我已经尝试修改下面的cppFlags值,但我开始怀疑这些cppFlag甚至被传递给编译器.

有没有人设法以这种方式包含除主要源文件夹以外的文件夹中的文件

我指定cppFlags,或者也许是moduleName甚至是源代码的方式有问题吗?

我可以通过SDL2源并将所有#include语句修改为相对的#include路径,但我真的不想修改SDL2源.我应该能够以某种方式指定包含路径的列表.

apply plugin: 'com.android.model.application'

model {
...
    android.ndk {
        moduleName = 'main'

        //W:\hello-sdl-android\android-project\app\src\main\jni\SDL2\include
        cppFlags += "-I${file("src/main/jni/SDL2/include")}".toString()
        cppFlags += "-I${file("src/main/jni/SDL2/src")}".toString()
    }

    android.sources {
        main.jni {
            source {
                srcDirs += ['src/main/jni/src']
                srcDirs += ['src/main/jni/SDL2/src']
            }
        }
    }
...
}

更新:这里有关于我当前项目布局的更多信息:

应用程序/ SRC /主/ JNI
app / src / main / jni / src / Main.cpp< - 这是编译
app / src / main / jni / SDL2< - 所有SDL2源都在这里
app / src / main / jni / GLM< - 所有GLM源都在这里 这种布局是使用我在这里提供的示例项目的直接结果:https://gitlab.com/scannerdarkly/hello-sdl-android

该项目将使用命令行中的ndk-build构建 – 我希望通过在Android Studio中构建更进一步.我的项目将尝试在GLES2设备上绘制一个三角形.

这是到目前为止我当前项目的链接

http://www.mediafire.com/download/92577p7vf123l72/hello-sdl-android.zip

解决方法

我使用略有不同的方法
cFlags += "-I" + file("src/main/jni/SDL2/include").absolutePath

..这很有效.原因可能是编译器使用不同的工作目录启动,而absolutePath解决了这里的任何歧义.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...