Comment puis-je activer le C++11 dans gcc?
J'utilise gcc 4.8.1 de http://hpc.sourceforge.net sur Mac OSX Mountain Lion. Je suis en train de compiler un programme en C++ qui utilise la to_string
fonction dans <string>
. J'ai besoin d'utiliser le drapeau -std=c++11
à chaque fois:
g++ -std=c++11 -o testcode1 code1.cpp
Est-il un moyen d'inclure cet indicateur par défaut?
- Utiliser un Makefile et le mettre dans
CXXFLAGS
. - Personnellement, je suis allé avec un automator service pour compiler à l'aide de drapeaux comme cela. Les Makefiles sont aussi bons, et puis, il y a XCode (ou tout autre IDE).
- Dev-C++ et d'autres IDEs ont des options du compilateur où vous pouvez
Vous devez vous connecter pour publier un commentaire.
H2CO3 est droite, vous pouvez utiliser un makefile avec la CXXFLAGS jeu avec -std=c++11
Un makefile est un simple fichier texte avec des instructions sur la façon de compiler votre programme. Créez un nouveau fichier nommé Makefile (avec un M majuscule). Automatiquement la compilation du code, il suffit de taper le faire commande dans un terminal. Vous pourriez avoir à installer faire.
Ici est simple :
Il suppose que tous les .rpc fichiers sont dans le même répertoire que le fichier makefile. Mais vous pouvez facilement modifier votre fichier makefile à l'appui d'un crs, comprennent et les répertoires de construction.
Modifier : j'ai modifié la valeur par défaut du compilateur c++, ma version de g++ n'est pas à jour. Avec clang++ ce makefile fonctionne très bien.
Comme mentionné précédemment - dans le cas d'un projet,
Makefile
ou sinon, c'est un projet de problème de configuration, où vous aurez probablement besoin de spécifier d'autres drapeaux de trop.Mais qu'en one-off des programmes, où vous auriez normalement il suffit d'écrire
g++ file.cpp && ./a.out
?Bien, j'aimerais bien que certains
#pragma
à se retourner contre au niveau de la source, ou peut-être un défaut d'extension - dire.cxx
ou.C11
ou que ce soit, de déclenchement par défaut. Mais aujourd'hui encore, il n'y a pas une telle caractéristique.Mais, comme vous êtes probablement de travail dans un manuel à l'environnement (shell), vous pouvez juste avoir un alias dans vous
.bashrc
(ou autre):ou, pour les nouvelles G++ (et quand vous voulez vous sentir "en C++11")
Vous pouvez même alias
g++
lui-même, si vous détestez C++03 que beaucoup 😉Je pense que vous pouvez le faire en utilisant un fichier specs.
Sous MinGW, vous pourriez exécuter
gcc-dumpspecs > spécifications
Où il est dit
Vous la changez pour
Et ensuite le placer dans
/mingw/lib/gcc/mingw32/<version>/specs
Je suis sûr que vous pourriez faire la même chose sans MinGW construire. Ne savez pas où placer les spécifications de fichier si.
Le dossier est probablement /gcc/lib/ou /gcc/.
strace -f gcc your-sources-here 2>&1 | grep specs
. Sur une (plus) système Debian, cela donne/usr/lib/gcc/i586-linux-gnu/4.9/specs
. Crééspecs
comme indiqué dans la réponse (besoin de sudo pour se déplacer là-bas sous Linux) et fonctionne comme un charme! Merci.