Compilación de C + + 11 fuentes para Android NDK
Estoy tratando de compilar algunas fuentes C + + 11 con Android NDK en Windows, pero sin mucha suerte. Tenga en cuenta, que he leído algunas otras preguntas sobre la compilación de C + + 11, pero no ayudó mucho, por desgracia.
He descargado el ADT Bundle y el último NDK ( android-ndk-r9b-windows-x86.zip
).
- Cómo construir impulso para android como biblioteca compartida con c + + 11 de apoyo
- Habilitar la compatibilidad con C ++ 11 en Android
- ¿Cuál es la diferencia en GCC entre -std = gnu ++ 0x y -std = c ++ 0x y cuál debe ser utilizado?
- C ++ 11 funciones cmath no en el espacio de nombres std para android NDK w / gcc-4.8 o clang 3.4
- ¿Cómo usar std :: stoul y std :: stoull en Android?
Estos son mis archivos de configuración:
Application.mk
APP_STL := gnustl_static NDK_TOOLCHAIN_VERSION = 4.8 LOCAL_CPP_FEATURES += exceptions LOCAL_CFLAGS += -std=c++11
Android.mk
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := procalc-core LOCAL_SRC_FILES := pcc_arithmetics.cpp \ pcc_arithmetics_tools.cpp \ pcc_common.cpp \ pcc_core.cpp \ pcc_dms_tokenizer.cpp \ pcc_dynamic_numerics.cpp \ pcc_exceptions.cpp \ pcc_expressiontree.cpp \ pcc_expression_containers.cpp \ pcc_messages.cpp \ pcc_numerics.cpp \ pcc_resolvers.cpp \ pcc_syntaxtree.cpp \ pcc_tokenizer.cpp \ sm_Bignum.cpp \ sm_Math2D.cpp \ sm_MathNumerics.cpp \ ss_Streams.cpp include $(BUILD_SHARED_LIBRARY)
Comando de construcción
cd %AndroidProjects%ProCalc\jni\ D:\Android\ndk\ndk-build pause
El error
Ése es realmente uno de los errores, pero claramente no está reconociendo nuevas palabras claves de C ++ 11 como auto
o nullptr
.
D:/(path)/jni/pcc_arithmetics.cpp: In static member function 'static ProCalcCore::BaseNumeric* (* ProCalcCore::Arithmetics::GetFunctionMethod(std::string)) (const std::vector<const ProCalcCore::BaseNumeric*>&)': D:/(path)/jni/pcc_arithmetics.cpp:4077:11: error: 'nullptr' was not declared in this scope return nullptr; ^
¿Qué estoy haciendo mal?
- Cómo utilizar unordered_map en Android?
- Problema de calidad de voz en Android VoIP app con PJSIP
- Cómo utilizar std :: this_thread :: yield () deterministically?
- ¿Cómo habilitar C ++ 11 para Android Studio?
- Construir android con clang en lugar de gcc? Y el clang stl lib en lugar de gnustl lib?
- Obtener Android NDK r9d para tener C + + 11 de apoyo
- Android Studio 14 Native Development + CrystaX NDK
- Uso no válido de tipo incompleto en android ndk utilizando c ++ 11 std :: async
LOCAL_CPP_FEATURES += exceptions LOCAL_CFLAGS += -std=c++11
Debería ir al archivo Android.mk. Alternativamente, usted podría poner
APP_CFLAGS += -std=c++11
En Application.mk. También puede utilizar APP_CPPFLAGS
en APP_CPPFLAGS
lugar, de modo que las fuentes C de su proyecto (si elige agregarlas) podrían compilar (el compilador C no le gustará -std=c++11
).