Habilitar la compatibilidad con C ++ 11 en Android

¿Cómo puedo integrar C ++ 11 en Android?

Parece que la respuesta principal aquí incluye soporte experimental para C ++ 11, y C ++ 11 ya no es experimental.

Si usted está usando la línea de comandos NDK apoyo (yo uso IDEA comunidad edición 13 para el material de Java), entonces esto es lo que tuve que poner en mi jni/Application.mk para obtener C + + 11 soporte con API 19 (en OSX ML):

 NDK_TOOLCHAIN_VERSION := 4.8 # APP_STL := stlport_shared --> does not seem to contain C++11 features APP_STL := gnustl_shared # Enable c++11 extentions in source code APP_CPPFLAGS += -std=c++11 

Derivado de aquí y aquí .

En primer lugar, tendrá que asegurarse de que su cadena de herramientas es "Cross GCC". Aunque era el predeterminado en mi Linux, no estaba en mi MacOSX Lion.

Para ello, vaya a Propiedades del proyecto> C / C ++ Build> Editor de cadena de herramientas . La " cadena de herramientas actual " debe establecerse en " Cruzar GCC ". Es posible que deba desmarcar la casilla " Mostrar sólo toolchains compatibles ".

A continuación, agregue una opción a LOCAL_CFLAGS en Android.mk :

 LOCAL_CFLAGS := -std=gnu++11 

Ahora necesitamos informar a Eclipse sobre dónde encontrar los nuevos símbolos correspondientes (por ejemplo, "std :: unordered_map"). Haga clic con el botón derecho del ratón en "jni"> Propiedades> C / C ++ General -> Rutas y símbolos -> Símbolos -> GNU C ++ y agregue el siguiente símbolo (haciendo clic en "Agregar …"):

 Name: __GXX_EXPERIMENTAL_CXX0X__ Value: 

(Es decir, deje "Valor" vacío)

También puede establecer esto en su archivo build.gradle si está utilizando el gradle-experimental-plugin :

 android.ndk { moduleName = "hello-android-jni" stl = "stlport_shared" cppFlags.add("-std=c++11") } 

Con el último gradle-experimental-plugin 0.8.0-alpha4 agrega a tu app / build.gradle :

 model { android { ndk { moduleName "native" CFlags.add("-std=c11") // Enable C11 support ldLibs.add("log") } } } 
  • Uso no válido de tipo incompleto en android ndk utilizando c ++ 11 std :: async
  • Problema de calidad de voz en Android VoIP app con PJSIP
  • ¿Cómo habilitar C ++ 11 para Android Studio?
  • Error: 'shared_ptr' en el espacio de nombres 'std' no nombra un tipo
  • Android Studio 14 Native Development + CrystaX NDK
  • Configuración de C ++ 11 (std :: thread) para NDK con ADT / Eclipse
  • C ++ 11 biblioteca aleatoria en Android JNI
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.