我尝试使用本机c-libs编译我的项目并获得下一个错误
/Users/eugene/KREF14001/app/src/main/jni/libC/PulseFilter.c: In function 'shapeMonoGame':
/Users/eugene/KREF14001/app/src/main/jni/libC/PulseFilter.c:696:5: error: 'for' loop initial declarations are only allowed in C99 mode
/Users/eugene/KREF14001/app/src/main/jni/libC/PulseFilter.c:696:5: note: use option -std=c99 or -std=gnu99 to compile your code
从这个报告中我发现我必须使用选项-std = c99或-std = gnu99来编译我的代码,但我不知道该怎么做。求你帮帮我。
答案 0 :(得分:3)
在您应用的build.gradle
文件中,您可以在cFlags "-std=c99"
块中的ndk
块中添加defaultConfig
,如下所示:
ndk {
moduleName "libblur"
abiFilter "armeabi-v7a"
stl "gnustl_static"
cFlags "-std=c99"
ldLibs "log"
}
答案 1 :(得分:2)
问题在于Gradle不使用.mk文件,而是生成自己的文件并使用它们。所以编辑Android.mk和Application.mk很有用。您可以手动构建源代码或编辑build.gradle的ndk部分。