L'utilisation de c++11 pour le programme de l'Arduino?
Comment puis-je utiliser c++11
lors de la programmation de l'Arduino? Je serait bien, soit en utilisant l'IDE Arduino ou un autre environnement. Je suis plus intéressée par le langage de base des améliorations, pas des choses qui nécessitent de la bibliothèque standard changements.
Vous devez vous connecter pour publier un commentaire.
De version 1.6.6, l'IDE Arduino permet à c++11 par défaut.
Pour les versions plus anciennes, lire sur:
Il est très facile de changer les drapeaux pour tout élément de l'ensemble des outils, y compris l'assembleur, compilateur, l'éditeur de liens ou d'archivage.
Testé sur l'IDE Arduino version 1.5.7 (sorti en juillet 2014),
Par exemple,
Il est prévu que le C++11 est activé par défaut dans un avenir proche sur l'IDE Arduino. Cependant, à partir de la version 1.5.8 (Oct 2014) il n'est pas encore le cas.
-std=gnu++11
drapeau au sein de défaut platform.txt. Et ici vous pouvez voir commettre Activer le C++11: github.com/arduino/Arduino/commit/ddf4d878fdb39173b872f69149fb4cf1cd9fd017. Également mentionné ici stackoverflow.com/a/33718020/1338846C:\Program Files (x86)\Arduino\hardware\arduino\avr
IDE Arduino 1.6.6 et plus récents ont C++11 activé par défaut (ils ont le compilateur drapeau "-std=gnu++11", situé dans le platform.txt fichier).
Tout d'abord, seul
gcc
4.7 et au-dessus (et doncavr-gcc
4.7 et ci-dessus) soutienC++11
. Donc, vérifiez les versions installées avec :Si
avr-gcc
est de 4,7 ou plus, alors vous pouvez être en mesure d'utiliserC++11
.L'IDE Arduino ne prend pas en charge personnalisée paramètres du compilateur. Cela a été demande mais n'a pas encore été mis en œuvre.
Donc, vous êtes de gauche d'avoir à utiliser d'autres environnements ou de compiler votre programme directement à partir de la ligne de commande.
En cas, de compiler directement à partir de la ligne de commande à l'aide de
avr-gcc
, il vous suffit d'ajouter un supplément de compilateur drapeau d'activation de C++11.Spécifiques les environnements de développement, la plupart seraient en charge l'édition des drapeaux de compilation à partir de la génération d'options au sein de l'IDE. Le ci-dessus mentionné drapeau doit être ajouté à la liste des indicateurs pour chaque environnement.
C++0x
était le nom d'un projet de travail de l'C++11
standard.C++0x
de soutien est disponiblegcc
4.3 et ultérieures. Cependant, il s'agit strictement d'un support expérimental de sorte que vous ne peut pas realiably attendreC++11
dispose d'être présent. Ici est la liste complète des fonctionnalités disponibles avec la version correspondante degcc
. La disponibilité des fonctionnalités dansavr-gcc
sera le même que ce qui est disponible dans lesgcc
version.Le compilateur drapeau pour
C++0x
est :Veuillez noter qu'il n'y a pas de moyen facile de spécifier d'autres drapeaux de l'IDE Arduino ou utiliser d'autres IDE (Eclipse, les Blocs de Code, etc) ou de la ligne de commande.
Comme un hack, vous pouvez utiliser un petit programme de proxy (ce qui devrait être multi-plateforme):
Vous avez terminé!
Exemple avr-g++.ini:
De l'espoir, qui permet de!
- Je utiliser Ino et cela a fonctionné:
ino build -cppflags="-std=c++0x"
Cela a généré un fichier hex au moins 15k en taille (c'est avec les optimisations activées), comparativement à environ 5k pour la version standard, ce qui est une considération pour un pauvre petit Atmega328. Peut-être bien pour l'un des microcontrôleurs avec beaucoup plus de programme de l'espace.