studio r16 r13 ndk how android-ndk

android ndk - r16 - Cómo establecer el c99 estándar para compilar el proyecto NDK de Android



ndk r13 (3)

En tu Android.mk agrega

LOCAL_CFLAGS += -std=c99

Por ejemplo:

LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_CFLAGS += -std=c99 LOCAL_SRC_FILES := com_example_ndktest_TestLib.c LOCAL_MODULE := com_example_ndktest_TestLib include $(BUILD_SHARED_LIBRARY)

Asegúrese de agregar ''LOCAL_CFLAGS'' después de agregar ''include $ (CLEAR_VARS)''

Quiero construir una pequeña biblioteca que fue escrita en C99 para Android, pero el compilador dio el registro como

note: use option -std=c99 or -std=gnu99 to compile your code

¿Dónde puedo configurarlo?


Una adición a la respuesta de auselen:

De acuerdo con los documentos de NDK ( espejo de kandroid.org ), LOCAL_CFLAGS solo se aplicará a cada módulo: si desea este comportamiento en un proyecto completo, configure APP_CFLAGS en Application.mk. Además, CFLAGS cubrirá las fuentes C y C ++, CPPFLAGS cubre solo C ++.


Como las personas pueden llegar aquí buscando "establecer el c99 estándar para compilar el proyecto NDK de Android", creo que esto necesita una actualización.

Para Android Studio 1.4 con Gradle 2.5, el c99 se puede configurar en build.gradle

TEN EN CUENTA QUE LA SINTAXIS SENSIBLE AL CASO EN BUILD.GRADLE HA CAMBIADO DE cFlags A CFlags (muchos ejemplos en línea usan la sintaxis anterior).

Aquí hay un build.gradle modificado del proyecto hello-jni de muestra con soporte C99 agregado.

apply plugin: ''com.android.model.application'' model { android { compileSdkVersion = 23 buildToolsVersion = "23.0.0" defaultConfig.with { applicationId = "com.example.hellojni" minSdkVersion.apiLevel = 4 targetSdkVersion.apiLevel = 23 } } compileOptions.with { sourceCompatibility=JavaVersion.VERSION_1_7 targetCompatibility=JavaVersion.VERSION_1_7 } /* * native build settings */ android.ndk { moduleName = "hello-jni" CFlags += "-std=c99" } android.buildTypes { release { minifyEnabled = false proguardFiles += file(''proguard-rules.txt'') } } android.productFlavors { // for detailed abiFilter descriptions, refer to "Supported ABIs" @ // https://developer.android.com/ndk/guides/abis.html#sa create("arm") { ndk.abiFilters += "armeabi" } create("arm7") { ndk.abiFilters += "armeabi-v7a" } create("arm8") { ndk.abiFilters += "arm64-v8a" } create("x86") { ndk.abiFilters += "x86" } create("x86-64") { ndk.abiFilters += "x86_64" } create("mips") { ndk.abiFilters += "mips" } create("mips-64") { ndk.abiFilters += "mips64" } // To include all cpu architectures, leaves abiFilters empty create("all") } }