2012-01-16 13 views
6

Al examinar el "android-NDK-Linux_x86/fuentes/CXX-STL/gnu-libstdC++/include/memoria" archivo de cabecera, me parece que esta cabecera incluye otros archivos de cabecera STL acuerdo con la banderaCómo activar el estándar experimental "C++ 0X" al compilar archivos .cpp en Android-ndk (r7)?

__GXX_EXPERIMENTAL_CXX0X__ 

. Creo que esta bandera se relaciona con el estándar "C++ 0X" y este estándar aún puede ser experimental en Android-ndk r7. Sin embargo, quiero activar este estándar de C++ en mi proyecto. (No estoy seguro de si este estándar "C++ 0X" se ha activado de manera predeterminada)

Quiero saber cómo debo decirle a Android-ndk que establezca este indicador cuando compilo los archivos .cpp en el directorio "project/jni" de un proyecto de Android. O cómo podría activar el estándar experimental "C++ 0X" en mi aplicación.

¿Debo especificar el indicador usando, p. Ej. LOCAL_CPPFLAGS y/o APP_CPPFLAGS, en el archivo "Android.mk"/"Application.mk". (Estoy usando "APP_STL: = gnustl_static" en mi "Application.mk")

Gracias por cualquier sugerencia.

Lawrence Tsang

+1

C++ 03 estándar en existencia sine 2003 probablemente se refiere a C++ 11 estándar. –

+0

@Als Según bdonlan, me refiero al estándar "C++ 0X". He cambiado mi pregunta para reflejar esto. – user1129812

Respuesta

7

C++ 03 no es un estándar experimental; es el predeterminado.

C++ 0X, sin embargo, es un estándar experimental. Su nombre oficial ahora se ha establecido como C++ 11, pero la implementación es incompleta en GCC (y en todos los demás lugares). Puede habilitarlo pasando --std=c++0x a GCC. Recuerde verificar el feature status page antes de quejarse de que algo no funciona.

+1

'** Puede habilitarlo pasando --std = C++ 0x a GCC **' Pero ¿cómo puedo pasar '** - std = C++ 0x **' al compilador en un Android-ndk ambiente. Estoy usando "ndk-build" y espero especificar las opciones de compilación a través de los archivos "Android.mk"/"Application.mk". – user1129812

+3

Agregar funciona "LOCAL_CPPFLAGS = -std = C++ 0x" a "Android.mk". Gracias. – user1129812

Cuestiones relacionadas