Procédure pas à pas : Compiler un programme C sur la ligne de commande

Les outils de génération Visual Studio incluent un compilateur C que vous pouvez utiliser pour créer tout, des programmes de console de base aux applications de bureau Windows complètes, aux applications mobiles, etc. Microsoft C/C++ (MSVC) est un compilateur C et C++ qui, dans ses dernières versions, est conforme à certaines des dernières normes du langage C, notamment C11 et C17.

Cette procédure pas à pas montre comment créer un programme C de type « Hello, World » de base à l’aide d’un éditeur de texte, puis le compiler sur la ligne de commande. Si vous préférez travailler en C++ sur la ligne de commande, consultez Procédure pas à pas : compilation d’un programme C++ natif 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.

Prérequis

Pour effectuer cette procédure pas à pas, vous devez avoir installé Visual Studio ou Build Tools pour Visual Studio et le développement De bureau facultatif avec la charge de travail C++.

Visual Studio est un environnement de développement intégré puissant qui prend en charge un éditeur complet, des gestionnaires de ressources, des débogueurs et des compilateurs pour de nombreux langages et plateformes. Pour plus d’informations sur ces fonctionnalités et sur la façon de télécharger et d’installer Visual Studio, y compris l’édition Gratuite de Visual Studio Community, consultez Installer Visual Studio.

La version Build Tools pour Visual Studio de Visual Studio installe uniquement l’ensemble d’outils en ligne de commande, les compilateurs, les outils et les bibliothèques 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 l’ensemble d’outils en ligne de commande, téléchargez Build Tools pour Visual Studio à partir de la page téléchargements de Visual Studio et exécutez le programme d’installation. Dans le programme d’installation de Visual Studio, sélectionnez le développement Desktop avec la charge de travail C++ (dans les versions antérieures de Visual Studio, sélectionnez la charge de travail outils de génération C++), puis choisissez Installer.

Lorsque vous avez installé les outils, vous utiliserez un autre outil pour générer un programme C ou C++ sur la ligne de commande. MSVC 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 MSVC dans une fenêtre d’invite de commandes simple sans préparation. Vous avez besoin d’une fenêtre d’invite de commandes développeur, qui est une fenêtre d’invite de commandes régulière qui a tous les variables d’environnement requises définies. Heureusement, Visual Studio installe des raccourcis pour vous permettre de lancer des invites de commandes développeur sur lesquelles l’environnement est configuré pour les builds de ligne de commande. Malheureusement, les noms des raccourcis d’invite de commandes du développeur et de leur emplacement sont différents dans presque toutes les versions de Visual Studio et sur différentes versions de Windows. Votre première tâche de procédure pas à pas consiste à trouver le raccourci approprié à utiliser.

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. Certaines de ces valeurs sont différentes pour chaque configuration de build. Vous devez définir vous-même ces valeurs d’environnement si vous n’utilisez pas l’un des raccourcis. Pour plus d’informations, consultez l’ensemble d’outils MSVC à partir de la ligne de commande. Étant donné que l’environnement de build est complexe, nous vous recommandons vivement d’utiliser un raccourci d’invite de commandes développeur au lieu de créer votre propre environnement.

Ces instructions varient selon la version de Visual Studio que vous utilisez. Pour consulter la documentation sur votre version préférée de Visual Studio, utilisez le contrôle de sélection de Version . Il se trouve en haut de la table des matières de cette page.

Ouvrir une invite de commandes développeur dans Visual Studio 2022

Si vous avez installé Visual Studio 2022 sur Windows 10 ou version ultérieure, ouvrez le menu Démarrer et choisissez Toutes les applications. Ensuite, faites défiler vers le bas et ouvrez le dossier Visual Studio 2022 (et non l’application Visual Studio 2022). Choisissez l’invite de commandes développeur pour VS 2022 pour ouvrir la fenêtre d’invite de commandes.

Ouvrir une invite de commandes développeur dans Visual Studio 2019

Si vous avez installé Visual Studio 2019 sur Windows 10 ou version ultérieure, ouvrez le menu Démarrer, puis choisissez Toutes les applications. Ensuite, faites défiler vers le bas et ouvrez le dossier Visual Studio 2019 (et non l’application Visual Studio 2019). Choisissez l’invite de commandes développeur pour VS 2019 pour ouvrir la fenêtre d’invite de commandes.

Ouvrir une invite de commandes développeur dans Visual Studio 2017

Si vous avez installé Visual Studio 2017 sur Windows 10 ou version ultérieure, ouvrez le menu Démarrer, puis choisissez Toutes les applications. Ensuite, faites défiler vers le bas et ouvrez le dossier Visual Studio 2017 (et non l’application Visual Studio 2017). Choisissez l’invite de commandes développeur pour VS 2017 pour ouvrir la fenêtre d’invite de commandes.

Ouvrir une invite de commandes développeur dans Visual Studio 2015

Si vous avez installé Microsoft Visual C++ Build Tools 2015 sur Windows 10 ou version ultérieure, ouvrez le menu Démarrer, puis choisissez Toutes les applications. Ensuite, 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.

Si vous utilisez une autre version de Windows, recherchez dans votre menu Démarrer ou page de démarrage un dossier d’outils Visual Studio contenant un raccourci d’invite de commandes pour les développeurs. 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 développeur est configurée correctement. Dans la fenêtre d’invite de commandes, entrez cl (ou CL, le cas n’a pas d’importance pour le nom du compilateur, mais cela concerne les options du compilateur). Le résultat doit ressembler à ce qui suit :

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, en fonction de la version de Visual Studio 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 erreur LNK1104 lorsque vous exécutez la commande cl , alors vous n’utilisez pas d’invite de commandes développeur, ou quelque chose ne fonctionne pas avec votre installation de Visual Studio. Vous devez résoudre ce problème avant de pouvoir continuer.

Si vous ne trouvez pas le raccourci d’invite de commandes développeur ou si vous recevez un message d’erreur lorsque vous entrez cl, votre installation de Visual Studio peut rencontrer un problème. Si vous utilisez Visual Studio 2017 ou version ultérieure, essayez de réinstaller le développement Desktop avec la charge de travail C++ dans le programme d’installation de Visual Studio. Pour plus d’informations, consultez Installer la prise en charge C++ dans Visual Studio. Ou réinstallez les outils de génération à partir de la page téléchargements de Visual Studio. Ne passez pas à la section suivante tant que la cl commande ne fonctionne pas. Pour plus d’informations sur l’installation et la résolution des problèmes de Visual Studio, 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 que Administration istrator 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 C et le compiler sur la ligne de commande

  1. Dans la fenêtre d’invite de commandes du développeur, entrez cd c:\ pour modifier le répertoire de travail actuel à la racine de votre lecteur C : . Ensuite, entrez md c:\hello pour créer un répertoire, puis entrez cd c:\hello pour passer à ce répertoire. Ce répertoire contiendra votre fichier source et le programme compilé.

  2. Entrez notepad hello.c à l’invite de commandes développeur. Dans la boîte de dialogue d’alerte Bloc-notes Windows qui s’affiche, choisissez Oui pour créer un hello.c fichier dans votre répertoire de travail.

  3. Dans Bloc-notes Windows, entrez les lignes de code suivantes :

    #include <stdio.h>
    
    int main()
    {
        printf("Hello, World! This is a native C program compiled on the command line.\n");
        return 0;
    }
    
  4. Dans la barre de menus Bloc-notes Windows, choisissez Fichier>Enregistrer pour enregistrer hello.c dans votre répertoire de travail.

  5. Revenez à la fenêtre d’invite de commandes du développeur. Entrez dir à l’invite de commandes pour répertorier le contenu du c:\hello répertoire. Vous devez voir le fichier hello.c source dans la liste des répertoires, qui ressemble à ceci :

    C:\hello>dir
     Volume in drive C has no label.
     Volume Serial Number is CC62-6545
    
     Directory of C:\hello
    
    10/02/2017  03:46 PM    <DIR>          .
    10/02/2017  03:46 PM    <DIR>          ..
    10/02/2017  03:36 PM               143 hello.c
                   1 File(s)            143 bytes
                   2 Dir(s)  514,900,566,016 bytes free
    
    

    Les dates et autres détails diffèrent sur votre ordinateur. Si vous ne voyez pas votre fichier de code source, hello.cvérifiez que vous avez changé dans le c:\hello répertoire que vous avez créé et, dans Bloc-notes Windows, vérifiez que vous avez enregistré votre fichier source dans ce répertoire. Vérifiez également que vous avez enregistré le code source avec une .c extension de nom de fichier, et non une .txt extension.

  6. Pour compiler votre programme, entrez cl hello.c à l’invite de commandes du développeur.

    Vous pouvez voir le nom du programme exécutable, hello.exe, dans les lignes d’informations de sortie affichées par le compilateur :

    c:\hello>cl hello.c
    Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25017 for x86
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    hello.c
    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.

    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 en haut de cette page pour rechercher le numéro d’erreur.

  7. Pour exécuter votre programme, entrez hello à l’invite de commandes.

    Le programme affiche ce texte puis se ferme :

    Hello, World! This is a native C program compiled on the command line.
    

    Félicitations, vous avez compilé et exécuté un programme C à l’aide de la ligne de commande.

Étapes suivantes

Cet exemple « Hello, World » est aussi simple qu’un programme C peut obtenir. Les programmes réels ont des fichiers d’en-tête et d’autres fichiers sources, un lien dans les bibliothèques et fonctionnent utilement.

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é. Vous pouvez également créer de nombreux exemples de programmes de code C que vous trouvez ailleurs. Pour compiler un programme qui contient plus de fichiers de code source, entrez-les tous sur la ligne de commande :

cl file1.c file2.c file3.c

Le compilateur génère un programme appelé file1.exe. Pour modifier le nom program1.exe, ajoutez une option /out linker :

cl file1.c file2.c file3.c /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 file1.c file2.c file3.c /link /out:program1.exe

Le compilateur, cl.exe, propose de nombreuses options supplémentaires que vous pouvez 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, ou msBuild et les fichiers projet 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 référence NMAKE et MSBuild.

Les langages C et C++ sont similaires, mais pas les mêmes. Le compilateur Microsoft C/C++ (MSVC) utilise une règle de base pour déterminer le langage à utiliser lorsqu’il compile votre code. Par défaut, le compilateur MSVC traite tous les fichiers qui se terminent en .c tant que code source C et tous les fichiers qui se terminent en .cpp tant que code source C++. Pour forcer le compilateur à traiter tous les fichiers comme C, quelle que soit l’extension de nom de fichier, utilisez l’option du compilateur /TC .

Par défaut, MSVC est compatible avec les normes ANSI C89 et ISO C99, mais pas strictement conformes. Dans la plupart des cas, le code C portable compile et s’exécute comme prévu. Le compilateur fournit une prise en charge facultative des modifications dans ISO C11/C17. Pour compiler avec la prise en charge de C11/C17, utilisez l’indicateur /std:c11 du compilateur ou /std:c17. La prise en charge de C11/C17 nécessite le Kit de développement logiciel (SDK) Windows 10.0.20201.0 ou version ultérieure. Le SDK Windows 10.0.22000.0 ou version ultérieure est recommandé. Vous pouvez télécharger le kit SDK le plus récent à partir de la page du Kit de développement logiciel (SDK) Windows. Pour plus d’informations et des instructions sur l’installation et l’utilisation de ce Kit de développement logiciel (SDK) pour le développement C, consultez la prise en charge d’Installer C11 et C17 dans Visual Studio.

Certaines fonctions de bibliothèque et noms de fonctions POSIX sont déconseillées par 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

Procédure pas à pas : création d’un programme C++ standard (C++)
Informations de référence sur le langage C
Projets et systèmes de build
Compatibilité