Compiler du c++14-code avec g++
J'utilise g++ 4.8.4 sur Ubuntu 14.04 LTS. Lorsque vous essayez de compiler avec "- std=c++14', j'obtiens cette erreur:
g++: error unrecognized command line option '-std=c++14'
De la compilation avec "- std=c++11', qui fonctionne bien, donc je ne suis pas sûr de ce qu'il se passe. Ne g++ n'ai pas vraiment de soutien pour le c++14 encore? Suis-je un mauvais option de ligne de commande?
J'ai utilisé "sudo apt-get install g++", qui devrait récupérer automatiquement la dernière version, est-ce correct?
- Vous avez besoin d'utiliser
-std=c++1y
il a changé-std=c++14
je pense que pour la 5.2 - Vous aurez une meilleure mise à niveau de votre GCC compilateur à 4,9 ou 5.
Vous devez vous connecter pour publier un commentaire.
Pour
gcc 4.8.4
vous devez utiliser-std=c++1y
dans les versions ultérieures, ressemble, en commençant par5.2
vous pouvez utiliser-std=c++14
.Si l'on regarde la gcc documents en ligne, nous pouvons trouver les manuels pour chaque version de gcc et l'on peut voir en allant à Le dialecte des options pour 4.9.3 en vertu de la GCC 4.9.3 manuel il dit:
Donc, jusqu'à
4.9.3
vous avez eu à utiliser-std=c++1y
tandis que le gcc 5.2 options dire:Il n'est pas clair pour moi pourquoi c'est répertoriée sous
Options Controlling C Dialect
mais c'est la façon dont les documents sont actuellement organisées.La
-std=c++14
drapeau n'est pas pris en charge sur GCC 4.8. Si vous souhaitez utiliser le C++14 fonctions, vous devez compiler avec-std=c++1y
. À l'aide de godbolt.org il semble que la earilest version à l'appui de-std=c++14
est GCC 4.9.0 ou Clang 3.5.0G++ C++14 fois par
-std=c++14
et-std=c++1y
. Ce dernier est le nom commun pour la norme avant il était connu dans l'année, il serait libéré. Dans les anciennes versions (y compris le vôtre), seul le dernier est accepté comme l'année de sortie n'a pas encore connus lors de ces versions ont été libérés.Il installe la dernière version disponible dans les dépôts Ubuntu, pas la dernière version qui existe.
La dernière version de GCC est de 5,2.
I used "sudo apt-get install g++" which should automatically retrieve the latest version, is that correct?
Il installe la dernière mise de selon la version majeure Ubuntu/Debian dépôts ont choisi de considérer comme le par défaut, non qualifiés version. Souvent, plusieurs forfaits sont disponibles pour les différentes, y compris les plus récents, les versions majeures - en ce cas, nous avons à spécifier explicitement que nous voulons pas le défaut majeur de version, par exemplesudo aptitude install g++-6
comme je l'ai récemment eu à faire sur la version unstable de Debian. Par défaut il y a tout à l'heure, dans le paquet nommég++
, est la version 5.x.Suivez les instructions à https://gist.github.com/application2000/73fd6f4bf1be6600a2cf9f56315a2d91 pour configurer la version de gcc que vous avez besoin - gcc 5 ou gcc 6 - sur Ubuntu 14.04. Les instructions comprennent la configuration de
update-alternatives
pour vous permettre de basculer entre les versions que vous avez besoin.