Recherche pour :
Panier 0
  • Accueil
  • Qui sommes nous
  • Articles
    • Jeux Vidéo
      • Curiosité
      • Créer un jeu HTML5, le guide
      • Programmation
    • Programmation
      • Guide C#
      • HTML & CSS
      • C++
      • Java
      • Javascript
      • PHP
      • Python
      • Smarty
      • SQL
      • Swift
    • Web
      • CMS
  • Formations & Code

Se connecter

Mot de passe perdu ?

Vous n'êtes pas encore membre? inscrivez-vous
  • phone 0678509271
  • email contact@develop4fun.com
  • Tech & Gadget
  • Contact
  • Forums
  • Unity
0
Develop4fun
  • Accueil
  • Qui sommes nous
  • Articles
    • Jeux Vidéo
      • Curiosité
      • Créer un jeu HTML5, le guide
      • Programmation
    • Programmation
      • Guide C#
      • HTML & CSS
      • C++
      • Java
      • Javascript
      • PHP
      • Python
      • Smarty
      • SQL
      • Swift
    • Web
      • CMS
  • Formations & Code
perm_identity Commencer

Blog

Develop4fun > Programmation > C++ > [C++] Compilateurs et environnements de développement

[C++] Compilateurs et environnements de développement

access_time7 février 2019
perm_identity Publié par Antonella "Lythande"
folder_open C++, Programmation
compilateur c++

Pour le développement et la compilation de sources C++, il existe de nombreuses solutions pour chaque plate-forme, à la fois open source et commerciales.

Aujourd’hui, nous analyserons les outils les plus répandus, en particulier les outils gratuits, ainsi que le support offert par chacun d’entre eux aux différentes versions de la bibliothèque standard du C++.

Compilateurs C++

De nombreux compilateurs C++ sont disponibles gratuitement pour chaque plate-forme. Chacune d’entre elles est différenciée par les performances, les niveaux d’optimisation attendus pour différentes architectures matérielles et les normes de langage prises en charge.

compilateur c++

Les projets open source incluent GCC (Gnu Compiler Collection), LLVM (machine virtuelle de bas niveau), avec son interface frontale C/C++ Clang, MinGW (Minimalist GNU for Windows) et MinGW-w64, un projet parallèle à MinGw qui prend en charge les architectures 64 bits.

Les deux premiers ont une approche multi-plateforme, même si la procédure d’installation sous Windows est quelque peu compliquée comparée à celle des systèmes Unix. MinGW et MinGW-w64 sont à la place des réimplémentations spécifiques au système Microsoft Windows de certains outils développés et maintenus dans le projet GNU.

Toutefois, si vous préférez utiliser un compilateur intégrant différents outils pour développer, déboguer un programme, vous pouvez utiliser MSVC++, le compilateur gratuit distribué par Microsoft pour les systèmes Windows, disponible depuis la version 2015 du package Visual C++ Build Tools.

 

Compiler en ligne de commande dans les environnements Unix

Le moyen le plus simple de commencer à programmer en C++ est probablement d’obtenir un système de type Unix, comme Linux ou Mac OS, et d’installer GCC.

Dans le cas de Linux, nous pouvons opter pour une installation réelle ou pour utiliser une machine virtuelle.

De nombreuses distributions fournissent des méta-packages qui vous permettent d’installer l’écosystème de développement complet C++. Sur les distributions basées sur Debian, ce paquet est appelé build-essential, tandis que sur les distributions basées sur RPM, les outils de développement C++ sont inclus dans le groupe Outils de développement.

Le nom de l’exécutable du compilateur GCC C++ est G++.

Pour compiler un seul fichier source avec G++, exécutez simplement la commande suivante dans un terminal:

g++ main.cpp -o test

Où main.cpp est le fichier qui contient notre code source et -o <nom> est l’option utilisée pour nommer le fichier exécutable. Si cette option est absente, le nom par défaut est a.out.

Cela suffit pour de nombreux exemples qui seront présentés dans les articles suivants. Cependant, si nécessaire, la compilation peut être étendue à plusieurs fichiers source avec la commande:

g++ *.cpp -o test

En réalité, plus souvent qu’autrement, il est plus pratique de laisser le processus de compilation démarrer par un environnement de développement spécifique. Par conséquent, de ce point de vue, nous n’analyserons pas en détail les différentes options du G++ pour la compilation, la configuration de liens et l’optimisation. Sauf dans des cas particuliers, nous nous limiterons à déléguer la responsabilité de la compilation de nos sources à l’EDI de notre choix et à nous concentrer exclusivement sur les constructions syntaxiques du langage et leur sémantique.

 

Bibliothèque standard du C++

Les normes de langage C++ sont identifiées de manière informelle par l’abréviation C++ XX, où XX représente les deux derniers chiffres de l’année de ratification de la norme.

La première version ISO est connue sous le nom de C++ 98 et constitue depuis longtemps la version de référence pour tous les environnements de développement. Elle est ensuite intégrée à la version suivante, appelée C++ 03, qui constitue davantage une correction véritable expansion. En fait, nous devons attendre la version C++ 11 pour observer des améliorations notables dans la sémantique du langage. Cette version de la norme, soumise à un long processus de révision, était provisoirement appelée C++ 0x, dans l’espoir que la ratification finale serait achevée avant 2010.

Cela a été suivi par la version C++ 14, qui intègre d’autres développements des constructions syntaxiques du langage. La version C++ 1z prévue pour 2017 est en cours de révision.

La prise en charge des normes les plus récentes, à partir de 2011, n’est pas universellement garantie par tous les compilateurs et, dans certains cas, il est nécessaire de l’activer explicitement. Cependant, dans la plupart des cas, nous avons tendance à adhérer aux dernières versions. Par exemple, GCC, qui depuis la version 6.1 a déjà adopté C++ 14 comme le standard par défaut, et Clang qui, bien que basé sur le standard C++ 98, accepte implicitement de nombreuses extensions C++ 11.

Le tableau ci-dessous montre l’état actuel du support offert par les compilateurs mentionnés ci-dessus.

Standard GCC Clang MinGW MinGW-w64 MSVC++
c++1z 6.0 partiel 3.5 partiel – – 2015 partiel
c++14 5.1 3.4 5.0 partiel 4.0 partiel 2013 partiel
c++11 4.8.1 3.3 4.0 partiel 3.0 partiel 2012 partiel

Évidemment, à chaque nouvelle version, chaque compilateur a la tendance à s’aligner sur la dernière norme, mais pour des raisons de compatibilité, nous pouvons être forcés d’utiliser une version plus ancienne qui ne prend peut-être pas en charge les constructions utilisées dans notre code source.

Lorsque cela se produit, le processus de compilation produit une série de messages d’erreur difficiles à déchiffrer, ce qui peut nous amener à rechercher des erreurs syntaxiques inexistantes. Par conséquent, si vous souhaitez expérimenter une version très récente du standard de langage, voire même une version expérimentale, il est bon de vous assurer que le compilateur est compatible.

Vues : 49
Mots clés: build-essentialC++ 03C++ 14C++ 1zC++ 98Compilateurenvironnement de développementoutils gratuits
À propos de Antonella "Lythande"

Lythande, la conceptrice du site : son histoire commence grâce à Marion Bradley Zimmer et Game Republic. Experte du secteur des jeux vidéo, elle a écrit pour les magazines les plus importants de l’Italie, tels que Game Republic, PS Mania et Pokémon Mania. @LythandeLister

Plus d'articles de Antonella "Lythande"
Précédent Introduction au C++
Suivant Raspberry Pi, une icône de l’informatique bidouille nouvelle génération

Laisser un commentaire Annuler la réponse

Le blog d’Antonella
  • Fly Fly Bird

    Fly Fly Bird est un jeu assez simple qui reprend le concept de Flappy Bird. Créé avec […]

  • Pong

    Pong est un des premiers jeux vidéo d’arcade et le premier jeu vidéo […]

  • [Projet Unity] Fallback

    Bonjour à tous, aujourd’hui je voudrais vous parler d’un petit projet né […]

Gamespeed France
  • Kingdom Hearts III est leader du top britannique cette semaine
  • Une version premium pour Nintendo Switch Online ?
  • Nintendo eShop: les nouveaux titres de la semaine
Saevents
  • Sport & Teambuilding : tous égaux ?

    « Teambuilding » : derrière ce nom anglais, utilisé […]

  • La motivation : Une notion centrale dans le management des collaborateurs ?

    « Au travail, se motiver est souvent difficile ! » ; d’autres […]

  • Snake Gliss, l’hiver démarre fort

    Ça se passe chez nous !   L’hiver démarre fort, première descente […]

Étiquettes
Android SDK Angry Birds Apple ARMv7 bases d'un game engine BlueTooth C# C.H.I.P. Concepts avancés Continuous Créer un jeu vidéo DOMContentLoaded développement de jeu Développeur gamejam gamers HTMLOptionElement IDE indie Internet introduction Intégrateur Itch jeux indépendants joueurs LinkedIn Microsoft Minecraft Mises à jour Open Source Outils de développement phablette programmation orientée objet programmation orientée objets Référenceur SEO smartphones Social selling Structure du langage Swift Playground tablettes Unity Visual Studio Web-designer Web Marketing WiFi
  • Develop4fun IT
  • Gamespeed Jeux Vidéo
  • Gamespeed Videogiochi
  • Immobilier Neuf
  • Organisateur d’évènement
  • Comportementaliste Animalier Grenoble
Sécurité du site Web
Gamespeed France
  • Kingdom Hearts III est leader du top britannique cette semaine

    L’institut Chart Track annonce que Kingdom Hearts III est leader du top britannique cette […]

  • Une version premium pour Nintendo Switch Online ?

    Le magazine japonais Nikkei indique que Nintendo pourrait également faire quelque chose en […]

  • Nintendo eShop: les nouveaux titres de la semaine

    Voici tous les nouveaux titres disponibles sur la console hybride de Nintendo : Bad North Demo (Raw […]

© 2019 Develop4fun. Tous droits réservés
keyboard_arrow_up