Projets C/C++ et systèmes de génération dans Visual Studio

Vous pouvez utiliser Visual Studio pour modifier, compiler et générer n’importe quelle base de code C++ avec une prise en charge complète d’IntelliSense sans avoir à convertir ce code en projet Visual Studio ou à compiler avec l’ensemble d’outils MSVC. Par exemple, vous pouvez modifier un projet CMake multiplateforme dans Visual Studio sur une machine Windows, puis le compiler pour Linux à l’aide de g++ sur une machine Linux distante.

Compilation C++

Pour générer un programme C++ signifie compiler du code source à partir d’un ou plusieurs fichiers, puis lier ces fichiers à un fichier exécutable (.exe), une bibliothèque de chargement dynamique (.dll) ou une bibliothèque statique (.lib).

La compilation C++ de base implique trois étapes principales :

  • Le préprocesseur C++ transforme toutes les définitions de macro et de #directives dans chaque fichier source. Cela crée une unité de traduction.
  • Le compilateur C++ compile chaque unité de traduction en fichiers objet (.obj), appliquant les options du compilateur définies.
  • L’éditeur de liens fusionne les fichiers objet en un seul exécutable, appliquant les options de l’éditeur de liens qui ont été définies.

Ensemble d’outils MSVC

Le compilateur Microsoft C++, l’éditeur de liens, les bibliothèques standard et les utilitaires associés composent l’ensemble d’outils du compilateur MSVC (également appelé chaîne d’outils ou « outils de génération »). Celles-ci sont incluses dans Visual Studio. Vous pouvez également télécharger et utiliser l’ensemble d’outils en ligne de commande en tant que package autonome gratuit. Pour plus d’informations, consultez Build Tools pour Visual Studio sur la page Téléchargements de Visual Studio.

Vous pouvez créer des programmes simples en appelant le compilateur MSVC (cl.exe) directement à partir de la ligne de commande. La commande suivante accepte un fichier de code source unique et appelle cl.exe pour générer un exécutable appelé hello.exe :

cl /EHsc hello.cpp

Ici, le compilateur (cl.exe) appelle automatiquement le préprocesseur C++ et l’éditeur de liens pour produire le fichier de sortie final. Pour plus d’informations, consultez Génération sur la ligne de commande.

Créer des systèmes et des projets

La plupart des programmes réels utilisent un type de système de génération pour gérer des complexités de compilation de plusieurs fichiers sources pour plusieurs configurations (débogage et version), plusieurs plateformes (x86, x64, ARM, etc.), des étapes de génération personnalisées et même plusieurs exécutables qui doivent être compilés dans un certain ordre. Vous définissez des paramètres dans un ou plusieurs fichiers de configuration de build et le système de génération accepte ce fichier comme entrée avant d’appeler le compilateur. L’ensemble de fichiers de code source et les fichiers de configuration de build nécessaires pour générer un fichier exécutable est appelé projet.

La liste suivante présente différentes options pour les projets Visual Studio - C++ :

  • créez un projet Visual Studio à l’aide de l’IDE Visual Studio et configurez-le à l’aide de pages de propriétés. Les projets Visual Studio produisent des programmes qui s’exécutent sur Windows. Pour obtenir une vue d’ensemble, consultez Compilation et génération dans la documentation de Visual Studio.

  • ouvrez un dossier qui contient un fichier CMakeLists.txt. La prise en charge de CMake est intégrée à Visual Studio. Vous pouvez utiliser l’IDE pour modifier, tester et déboguer sans modifier les fichiers CMake de quelque manière que ce soit. Cela vous permet de travailler dans le même projet CMake que d’autres qui utilisent peut-être différents éditeurs. CMake est l’approche recommandée pour le développement multiplateforme. Pour plus d’informations, consultez les projets CMake.

  • ouvrez un dossier libre de fichiers sources sans fichier projet. Visual Studio utilise des heuristiques pour générer les fichiers. Il s’agit d’un moyen simple de compiler et d’exécuter de petites applications console. Pour plus d’informations, consultez Ouvrir des projets dossier.

  • ouvrez un dossier qui contient un makefile ou tout autre fichier de configuration système de build. Vous pouvez configurer Visual Studio pour appeler toutes les commandes de build arbitraires en ajoutant des fichiers JSON au dossier. Pour plus d’informations, consultez Ouvrir des projets dossier.

  • Ouvrez un makefile Windows dans Visual Studio. Pour plus d’informations, consultez Référence NMAKE.

MSBuild à partir de la ligne de commande

Vous pouvez appeler MSBuild à partir de la ligne de commande en lui transmettant un fichier .vcxproj avec les options de ligne de commande. Cette approche nécessite une bonne compréhension de MSBuild et est recommandée uniquement si nécessaire. Pour plus d’informations, consultez MSBuild.

Dans cette section

Projets Visual Studio
Comment créer, configurer et générer des projets C++ dans Visual Studio à l’aide de son système de génération natif (MSBuild).

Projets CMake
Guide pratique pour coder, générer et déployer des projets CMake dans Visual Studio.

Projets Ouvrir un dossier
Comment utiliser Visual Studio pour coder, générer et déployer des projets C++ basés sur n’importe quel système de build arbitraire ou aucun système de build du tout.

Builds de mise en production
Comment créer et dépanner des builds de mise en production optimisées pour le déploiement vers les utilisateurs finaux.

Utiliser le jeu d’outils MSVC à partir de la ligne de commande
Explique comment utiliser le compilateur C/C++ et générer des outils directement à partir de la ligne de commande plutôt que d’utiliser l’IDE Visual Studio.

Génération de DLL dans Visual Studio
Comment créer, déboguer et déployer des DLL C/C++ (bibliothèques partagées) dans Visual Studio.

Procédure pas à pas : création et utilisation d’une bibliothèque statique
Comment créer un fichier binaire .lib .

Génération d’applications isolées et d’assemblys côte à côte C/C++
Décrit le modèle de déploiement pour des applications de bureau Windows en partant du principe qu'il s'agit d'applications isolées et d'assemblys côte à côte.

Configurer des projets C++ pour des cibles x64 64 bits
Comment cibler du matériel x64 64 bits avec les outils de génération MSVC.

Configurer des projets C++ pour les processeurs ARM
Comment utiliser les outils de génération MSVC pour cibler le matériel ARM.

Optimisation du code
Comment optimiser votre code de différentes manières, notamment les optimisations guidées par programme.

Configuration des programmes pour Windows XP
Comment cibler Windows XP avec les outils de génération MSVC.

Référence à la génération C/C++
Fournit des liens vers des articles de référence sur la génération de programmes en C++, les options de compilateur et d'éditeur de liens, ainsi que divers outils de génération.