ヘッダー ファイルがモジュールのメイン ソース フォルダーとは異なる場所にある場合、Android Studio はヘッダー ファイルを見つけることができません。これは、#include "SDL_config.h" ステートメントが赤色で強調表示されていることでわかります (他の #include ステートメントは問題ありません)。
以下の cppFlags の値を変更しようとしましたが、これらの cppFlags がコンパイラに渡されていることさえ疑っています。
この方法で、メインのソース フォルダー以外のフォルダーからファイルを含めることができた人はいますか?
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']
}
}
}
...
}
更新: 現在のプロジェクト レイアウトに関する詳細情報は次のとおりです。
app/src/main/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