72 votes

Activer le C++11 appui sur Android

Comment puis-je intégrer le C++11 dans Android?

68voto

scorpiodawg Points 1774

Il semble que la principale réponse ici comprend la prise en charge expérimentale de C++11 et C++11 n'est pas expérimentale, plus.

Si vous utilisez la ligne de commande NDK l'appui (j'utilise IDÉE community edition 13 pour les nouveautés de Java), alors c'est ce que j'avais à mettre dans mon jni/Application.mk d'obtenir de C++11) de support de l'API 19 (sur 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

Dérivé d' ici et ici.

36voto

JonesV Points 2650

Tout d'abord, vous devez vous assurer que votre chaîne est "de la Croix-GCC". Alors qu'il était par défaut sur mon Linux, il n'était pas sur mon MacOSX Lion.

Pour ce faire, allez dans les Propriétés du Projet > C/C++ Build > Chaîne d'outils de l'Éditeur. "Actuelle de la chaîne d'" doit être réglé sur "Croix du CCG". Vous pourriez avoir besoin de décocher la case "Affichage compatible toolchains seulement".

Ensuite, ajouter une option pour LOCAL_CFLAGS dans Android.mk:

LOCAL_CFLAGS := -std=gnu++11

Maintenant il faut nous informer de l'Éclipse sur l'endroit où trouver le correspondant de nouveaux symboles (par exemple, "std::unordered_map"). Allez à Droite, Cliquez sur "jni" > Propriétés > C/C++ Général -> Chemins et des Symboles -Symboles > - > C++de GNU, et ajouter le symbole suivant (en cliquant sur "Ajouter..."):

Name: __GXX_EXPERIMENTAL_CXX0X__
Value:

(c'est à dire laisser la "Valeur" vide)

0voto

nik_yo Points 86

cette aide avec le compilateur compatible C++11 caractéristiques http://www.drdobbs.com/cpp/accessing-c11-features-of-the-android-nd/240168385?pgno=2

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X