Procédure pas à pas : compilation d'un programme C++ natif sur la ligne de commande
Visual Studio inclut un compilateur C et C++ en ligne de commande. Vous pouvez l’utiliser pour créer tout, des applications console de base aux applications plateforme Windows universelle, applications de bureau, pilotes de périphérique et composants .NET.
Dans cette procédure pas à pas, vous créez un programme C++ de type « Hello, World » de base à l’aide d’un éditeur de texte, puis compilez-le sur la ligne de commande. Si vous souhaitez essayer l’IDE Visual Studio au lieu d’utiliser la ligne de commande, consultez Procédure pas à pas : Utilisation de projets et de solutions (C++) ou utilisation de l’IDE Visual Studio pour le développement C++ Desktop.
Dans cette procédure pas à pas, vous pouvez utiliser votre propre programme C++ au lieu de taper celui affiché. Vous pouvez également utiliser un exemple de code C++ à partir d’un autre article d’aide.
Prérequis
Pour effectuer cette procédure pas à pas, vous devez avoir installé Visual Studio et le développement Desktop facultatif avec la charge de travail C++ ou les outils de génération en ligne de commande pour Visual Studio.
Visual Studio est un environnement de développement intégré (IDE). Il prend en charge un éditeur complet, des gestionnaires de ressources, des débogueurs et des compilateurs pour de nombreux langages et plateformes. Les versions disponibles incluent l’édition Gratuite de Visual Studio Community, et toutes peuvent prendre en charge le développement C et C++. Pour plus d’informations sur le téléchargement et l’installation de Visual Studio, consultez La prise en charge de C++ dans Visual Studio.
Build Tools pour Visual Studio installe uniquement les compilateurs, outils et bibliothèques en ligne de commande dont vous avez besoin pour générer des programmes C et C++. Il est parfait pour créer des laboratoires ou des exercices de classe et installer relativement rapidement. Pour installer uniquement les outils en ligne de commande, recherchez Build Tools pour Visual Studio dans la page Téléchargements de Visual Studio.
Avant de pouvoir créer un programme C ou C++ sur la ligne de commande, vérifiez que les outils sont installés et que vous pouvez y accéder à partir de la ligne de commande. Visual C++ a des exigences complexes pour l’environnement de ligne de commande pour rechercher les outils, les en-têtes et les bibliothèques qu’il utilise. Vous ne pouvez pas utiliser Visual C++ dans une fenêtre d’invite de commandes simple sans effectuer de préparation. Heureusement, Visual C++ installe des raccourcis pour lancer une invite de commandes développeur sur laquelle l’environnement est configuré pour les builds de ligne de commande. Malheureusement, les noms des raccourcis d’invite de commandes du développeur et leur emplacement sont différents dans presque toutes les versions de Visual C++ et sur différentes versions de Windows. Votre première tâche pas à pas consiste à trouver le bon usage.
Remarque
Un raccourci d’invite de commandes développeur définit automatiquement les chemins d’accès appropriés pour le compilateur et les outils, ainsi que pour tous les en-têtes et bibliothèques requis. Vous devez définir ces valeurs d’environnement vous-même si vous utilisez une fenêtre d’invite de commandes standard. Pour plus d’informations, consultez l’ensemble d’outils MSVC à partir de la ligne de commande. Nous vous recommandons d’utiliser un raccourci d’invite de commandes développeur au lieu de créer votre propre.
Ouvrir une invite de commandes développeur
Si vous avez installé Visual Studio 2017 ou version ultérieure sur Windows 10 ou version ultérieure, ouvrez le menu Démarrer et choisissez Toutes les applications. Faites défiler vers le bas et ouvrez le dossier Visual Studio (et non l’application Visual Studio). Choisissez l’invite de commandes développeur pour QUE VS ouvre la fenêtre d’invite de commandes.
Si vous avez installé Microsoft Visual C++ Build Tools 2015 sur Windows 10 ou version ultérieure, ouvrez le menu Démarrer et choisissez Toutes les applications. Faites défiler vers le bas et ouvrez le dossier Outils de génération Visual C++. Choisissez l’invite de commandes Visual C++ 2015 x86 Native Tools pour ouvrir la fenêtre d’invite de commandes.
Vous pouvez également utiliser la fonction de recherche Windows pour rechercher « invite de commandes développeur » et choisir celle qui correspond à votre version installée de Visual Studio. Utilisez le raccourci pour ouvrir la fenêtre d’invite de commandes.
Ensuite, vérifiez que l’invite de commandes du développeur Visual C++ est configurée correctement. Dans la fenêtre d’invite de commandes, entrez et vérifiez
cl
que la sortie ressemble à ceci :C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise>cl Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25017 for x86 Copyright (C) Microsoft Corporation. All rights reserved. usage: cl [ option... ] filename... [ /link linkoption... ]
Il peut y avoir des différences dans le répertoire actif ou les numéros de version. Ces valeurs dépendent de la version de Visual C++ et des mises à jour installées. Si la sortie ci-dessus est similaire à ce que vous voyez, vous êtes prêt à générer des programmes C ou C++ sur la ligne de commande.
Remarque
Si vous obtenez une erreur telle que « « Cl » n’est pas reconnue comme une commande interne ou externe, un programme opérable ou un fichier batch », erreur C1034 ou une erreur LNK1104 lorsque vous exécutez la
cl
commande, vous n’utilisez pas d’invite de commandes développeur, ou quelque chose ne fonctionne pas avec votre installation de Visual C++. Vous devez résoudre ce problème avant de pouvoir continuer.Si vous ne trouvez pas le raccourci d’invite de commandes du développeur ou si vous recevez un message d’erreur lorsque vous entrez
cl
, votre installation visual C++ peut rencontrer un problème. Essayez de réinstaller le composant Visual C++ dans Visual Studio ou réinstallez Microsoft Visual C++ Build Tools. Ne passez pas à la section suivante tant que lacl
commande ne fonctionne pas. Pour plus d’informations sur l’installation et la résolution des problèmes de Visual C++, consultez Installer Visual Studio.Remarque
Selon la version de Windows sur l’ordinateur et la configuration de sécurité système, vous devrez peut-être cliquer avec le bouton droit pour ouvrir le menu contextuel de l’invite de commandes développeur, puis choisir Exécuter en tant qu’administrateur pour générer et exécuter le programme que vous créez en suivant cette procédure pas à pas.
Créer un fichier source Visual C++ et le compiler sur la ligne de commande
Dans la fenêtre d’invite de commandes du développeur, entrez
md c:\hello
pour créer un répertoire, puis entrezcd c:\hello
pour passer à ce répertoire. Ce répertoire est l’emplacement où votre fichier source et le programme compilé sont créés.Entrez
notepad hello.cpp
dans la fenêtre d’invite de commandes.Choisissez Oui lorsque le Bloc-notes vous invite à créer un fichier. Cette étape ouvre une fenêtre du Bloc-notes vide, prête à entrer votre code dans un fichier nommé hello.cpp.
Dans le Bloc-notes, entrez les lignes de code suivantes :
#include <iostream> using namespace std; int main() { cout << "Hello, world, from Visual C++!" << endl; }
Ce code est un programme simple qui écrit une ligne de texte sur l’écran, puis quitte. Pour minimiser les risques d’erreurs, copiez le code et collez-le dans le Bloc-notes.
Enregistrez votre travail. Dans le Bloc-notes, dans le menu Fichier , choisissez Enregistrer.
Félicitations, vous avez créé un fichier source C++, hello.cpp, qui est prêt à être compilé.
Revenez à la fenêtre d’invite de commandes du développeur. Entrez
dir
à l’invite de commandes pour répertorier le contenu du répertoire c :\hello. Vous devez voir le fichier source hello.cpp dans la liste des répertoires, ce qui ressemble à ceci :c:\hello>dir Volume in drive C has no label. Volume Serial Number is CC62-6545 Directory of c:\hello 05/24/2016 05:36 PM <DIR> . 05/24/2016 05:36 PM <DIR> .. 05/24/2016 05:37 PM 115 hello.cpp 1 File(s) 115 bytes 2 Dir(s) 571,343,446,016 bytes free
Les dates et autres détails diffèrent sur votre ordinateur.
Remarque
Si vous ne voyez pas votre fichier de code source,
hello.cpp
vérifiez que le répertoire de travail actuel dans votre invite de commandes est leC:\hello
répertoire que vous avez créé. Vérifiez également qu’il s’agit du répertoire dans lequel vous avez enregistré votre fichier source. Vérifiez que vous avez enregistré le code source avec une.cpp
extension de nom de fichier, et non une.txt
extension. Votre fichier source est enregistré dans le répertoire actif en tant que.cpp
fichier automatiquement si vous ouvrez le Bloc-notes à l’invite de commandes à l’aide de lanotepad hello.cpp
commande. Le comportement du Bloc-notes est différent si vous l’ouvrez d’une autre façon : par défaut, le Bloc-notes ajoute une.txt
extension aux nouveaux fichiers lorsque vous les enregistrez. Il enregistre également par défaut des fichiers dans votre répertoire Documents . Pour enregistrer votre fichier avec une extension dans le.cpp
Bloc-notes, choisissez> Enregistrer sous. Dans la boîte de dialogue Enregistrer sous, accédez à votreC:\hello
dossier dans le contrôle d’arborescence d’annuaires. Utilisez ensuite le contrôle de liste déroulante Enregistrer en tant que type pour sélectionner Tous les fichiers (*.*). Entrezhello.cpp
le contrôle d’édition du nom de fichier, puis choisissez Enregistrer pour enregistrer le fichier.À l’invite de commandes du développeur, entrez
cl /EHsc hello.cpp
pour compiler votre programme.Le compilateur cl.exe génère un fichier .obj qui contient le code compilé, puis exécute l’éditeur de liens pour créer un programme exécutable nommé hello.exe. Ce nom apparaît dans les lignes des informations de sortie affichées par le compilateur. La sortie du compilateur doit ressembler à ceci :
c:\hello>cl /EHsc hello.cpp Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25017 for x86 Copyright (C) Microsoft Corporation. All rights reserved. hello.cpp Microsoft (R) Incremental Linker Version 14.10.25017.0 Copyright (C) Microsoft Corporation. All rights reserved. /out:hello.exe hello.obj
Remarque
Si vous obtenez une erreur telle que « Cl » n’est pas reconnue comme une commande interne ou externe, un programme opérable ou un fichier batch », erreur C1034 ou erreur LNK1104, l’invite de commandes du développeur n’est pas configurée correctement. Pour plus d’informations sur la résolution de ce problème, revenez à la section Ouvrir une invite de commandes développeur.
Remarque
Si vous obtenez une autre erreur ou avertissement de compilateur ou d’éditeur de liens, passez en revue votre code source pour corriger les erreurs, puis enregistrez-le et réexécutez le compilateur. Pour plus d’informations sur des erreurs spécifiques, utilisez la zone de recherche pour rechercher le numéro d’erreur.
Pour exécuter le programme hello.exe, à l’invite de commandes, entrez
hello
.Le programme affiche ce texte puis se ferme :
Hello, world, from Visual C++!
Félicitations, vous avez compilé et exécuté un programme C++ à l’aide des outils en ligne de commande.
Étapes suivantes
Cet exemple « Hello, World » est aussi simple qu’un programme C++ peut obtenir. Les programmes réels ont généralement des fichiers d’en-tête, plus de fichiers sources et un lien vers des bibliothèques.
Vous pouvez utiliser les étapes décrites dans cette procédure pas à pas pour générer votre propre code C++ au lieu de taper l’exemple de code affiché. Ces étapes vous permettent également de générer de nombreux exemples de programmes de code C++ que vous trouvez ailleurs. Vous pouvez placer votre code source et générer vos applications dans n’importe quel répertoire accessible en écriture. Par défaut, l’IDE Visual Studio crée des projets dans votre dossier utilisateur, dans un sous-dossier source\repos . Les versions antérieures peuvent placer des projets dans un dossier Documents\Visual Studio <version>\Projects .
Pour compiler un programme qui a des fichiers de code source supplémentaires, entrez-les tous sur la ligne de commande, par exemple :
cl /EHsc file1.cpp file2.cpp file3.cpp
L’option /EHsc
de ligne de commande indique au compilateur d’activer le comportement de gestion des exceptions C++ standard. Sans cela, les exceptions levées peuvent entraîner des fuites d’objets et de ressources non rois. Pour plus d’informations, consultez l’article /EH (Modèle de gestion des exceptions).
Lorsque vous fournissez des fichiers sources supplémentaires, le compilateur utilise le premier fichier d’entrée pour créer le nom du programme. Dans ce cas, il génère un programme appelé file1.exe. Pour modifier le nom en program1.exe, ajoutez une option /out linker :
cl /EHsc file1.cpp file2.cpp file3.cpp /link /out:program1.exe
Pour intercepter automatiquement d’autres erreurs de programmation, nous vous recommandons de compiler à l’aide de l’option de niveau d’avertissement /W3 ou /W4 :
cl /W4 /EHsc file1.cpp file2.cpp file3.cpp /link /out:program1.exe
Le compilateur, cl.exe, a de nombreuses options supplémentaires. Vous pouvez les appliquer pour générer, optimiser, déboguer et analyser votre code. Pour obtenir une liste rapide, entrez à cl /?
l’invite de commandes du développeur. Vous pouvez également compiler et lier séparément et appliquer des options d’éditeur de liens dans des scénarios de génération plus complexes. Pour plus d’informations sur les options et l’utilisation du compilateur et de l’éditeur de liens, consultez Référence de génération C/C++.
Vous pouvez utiliser NMAKE et makefiles, MSBuild et fichiers projet, ou CMake, pour configurer et générer des projets plus complexes sur la ligne de commande. Pour plus d’informations sur l’utilisation de ces outils, consultez les projets référence NMAKE, MSBuild et CMake dans Visual Studio.
Les langages C et C++ sont similaires, mais pas les mêmes. Le compilateur MSVC utilise une règle simple pour déterminer le langage à utiliser lorsqu’il compile votre code. Par défaut, le compilateur MSVC traite les fichiers qui se terminent par .c
le code source C et les fichiers qui se terminent en .cpp
tant que code source C++. Pour forcer le compilateur à traiter tous les fichiers comme C++ indépendamment de l’extension de nom de fichier, utilisez l’option du compilateur /TP .
Le compilateur MSVC inclut une bibliothèque de runtime C (CRT) conforme à la norme ISO C99, avec des exceptions mineures. Le code portable compile et s’exécute généralement comme prévu. Certaines fonctions de bibliothèque obsolètes et plusieurs noms de fonctions POSIX sont déconseillées par le compilateur MSVC. Les fonctions sont prises en charge, mais les noms préférés ont changé. Pour plus d’informations, consultez Fonctionnalités de sécurité dans le CRT et l’avertissement du compilateur (niveau 3) C4996.
Voir aussi
Informations de référence sur le langage C++
Projets et systèmes de build
Options du compilateur MSVC