2014-06-18 6 views
3

Я пытаюсь скомпилировать свой проект с родным с-LIBS и получить следующую ошибкуGradle вопрос здания

/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

Окей, я нахожу эту опцию в Android.mk, но были следующий код : local_path: = $ (назовем мой-Dir) включают $ (CLEAR_VARS) LOCAL_MODULE \t \t: = KREF LOCAL_C_INCLUDES \t: = $ (local_path)/ч/ LOCAL_SRC_FILES \t \t: = LibC/oouraFFT.c LibC/PulseFilter.c LOCAL_CFLAGS \t \t + = -std = c99 LOCAL_LDLIBS \t \t: = -llog включают $ (BUILD_SHARED_LIBRARY) –

+0

Как вы можете видеть, что уже написал LOCAL_CFLAGS + = -std = c99, но у меня такая же проблема. –

ответ

2

Проблема заключалась в том, что Gradle не использует ваши .mk-файлы, но генерирует их и использует их. Поэтому полезно редактировать Android.mk и Application.mk. Вы можете создать исходный код вручную или отредактировать ndk-раздел build.gradle.

3

В build.gradle файле вашего приложения, вы можете добавить cFlags "-std=c99" в ndk блоке, расположенном в пределах defaultConfig блока, как это:

ndk { 
    moduleName "libblur" 
    abiFilter "armeabi-v7a" 
    stl "gnustl_static" 
    cFlags "-std=c99" 
    ldLibs "log" 
} 
+0

с экспериментальной сборкой, ее не работает. можете ли вы предложить. благодаря – Vamsi

Смежные вопросы