Comment compiler le code c ++ 11 avec android ndk et eclipse?
Je suis en utilisant android NDK r8d, et eclipse Juno. Je suis en train de compiler du code C++ qui utilise C++11 trucs comme mutex
lock_guard
shared_ptr
etc. dans un natif du projet android dans eclipse.
J'ai des erreurs comme:
"erreur:" shared_ptr " n'est pas un membre de 'std'"
"erreur fatale: mutex: Aucun fichier ou répertoire de"
Je suis tombé sur une question similaire ici. Il semble que cela fonctionne pour eux, mais l'explication n'est pas complète, donc je ne peux pas le faire fonctionner pour moi.
J'ai ajouté "NDK_TOOLCHAIN_VERSION=4.7"
à la Application.mk
et "LOCAL_CFLAGS += -std=c++11"
à Android.mk
fichier. Pourtant, il ne compile pas.
Dans le lien ci-dessus il est dit:
"Assurez-vous que la bibliothèque standard comprennent chemin (comme
/android-ndk-r8d/sources/cxx-stl/gnu-libstdc++/4.7/include) est dans la
les paramètres de la cible."
Comment et où dois-je l'insérer?
Je reçois aussi des erreurs dans eclipse IDE (sur la source, avant la compilation). Je sais que je dois définir "__GXX_EXPERIMENTAL_CXX0X__"
à résoudre mais je ne sais pas où le mettre.
Donc, si quelqu'un pouvait poster une réponse avec une explication complète de la façon de compiler et de faire de l'éclipse de travail avec le C++11, il serait grand.
source d'informationauteur DeathlessHorsie
Vous devez vous connecter pour publier un commentaire.
Concernant votre première question:
Aller de Projet > Propriétés > C/C++ Générale /les Chemins et les Symboles
Dans le "Comprend" onglet, ajouter le répertoire approprié, par ex.
/android-ndk-r8d/sources/cxx-stl/gnu-libstdc++/4.7/include
Concernant votre deuxième question, je suis aussi à la recherche d'une réponse. Il n'est absolument pas clair comment définir le GXX_EXPERIMENTAL_CXX0X macro dans Eclipse.
Certains disent qu'il devrait être ", a ajouté comme une macro prédéfinie à l'indexeur", mais il semble que nous deux ne pouvaient pas trouver un moyen de mettre en œuvre...
J'ai lu ailleurs qu'il devrait être ajouté à "C/C++ Générale /les Chemins et les Symbols /Symboles /GNU C++" mais je ne trouve pas les Symboles " /GNU C++" dans ma version de l'Indigo.
Je trouve exporter une variable d'environnement NDK_TOOLCHAIN_VERSION=4.8 avant de me lancer eclipse peut résoudre ce problème.
Eclipse utilisation ndk par défaut de la chaîne de la version 4.6, si NDK_TOOLCHAIN_VERSION n'est pas de définir, et gcc sorcière cette version ne prend pas en charge tous les c++11 de l'avenir comme multithread et ainsi de suite.