Comment puis-je intégrer le C++11 dans Android?
Réponses
Trop de publicités?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
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)
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