Partager via


Créer un projet Makefile C++

Un makefile est un fichier texte qui contient des instructions pour compiler et lier (ou générer) un ensemble de fichiers de code source. Un programme (souvent appelé programme make ) lit le makefile et appelle un compilateur, un éditeur de liens et éventuellement d’autres programmes pour créer un fichier exécutable. Le programme Microsoft est appelé NMAKE.

Si vous avez un projet makefile existant, vous avez ces choix si vous souhaitez modifier, générer et déboguer dans l’IDE Visual Studio :

  • Créez un projet Makefile dans Visual Studio qui utilise votre Makefile existant pour configurer un fichier .vcxproj que Visual Studio utilisera pour IntelliSense. (Vous n’aurez pas toutes les fonctionnalités de l’IDE que vous obtenez avec un projet MSBuild natif.) Voir Pour créer un projet makefile ci-dessous.
  • Utilisez l’Assistant Créer un projet à partir de fichiers de code existants pour créer un projet MSBuild natif à partir de votre code source. Le makefile d’origine ne sera plus utilisé. Pour plus d’informations, consultez Guide pratique pour créer un projet C++ à partir d’un code existant.
  • Visual Studio 2017 et versions ultérieures : utilisez la fonctionnalité Ouvrir le dossier pour modifier et générer un projet makefile tel quel sans intervention du système MSBuild. Pour plus d’informations, consultez Projets Dossier ouvert pour C++.
  • Visual Studio 2019 et versions ultérieures : créez un projet makefile UNIX pour Linux.

Pour créer un projet Makefile avec le modèle de projet Makefile

Dans Visual Studio 2017 et les versions ultérieures, le modèle de projet Makefile est disponible quand la charge de travail de développement d’applications de bureau C++ est installée.

Suivez l’Assistant pour spécifier les commandes et l’environnement utilisés par votre makefile. Vous pouvez ensuite utiliser ce projet pour générer votre code dans Visual Studio.

Par défaut, le projet makefile n’affiche aucun fichier dans l’Explorateur de solutions. Le projet makefile spécifie les paramètres de génération qui sont reflétés dans la page de propriétés du projet.

Le fichier de sortie que vous spécifiez dans le projet n’a aucun effet sur le nom généré par le script de génération. Elle déclare uniquement une intention. Votre makefile contrôle toujours le processus de génération et spécifie les cibles de génération.

Pour créer un projet makefile dans Visual Studio

  1. Dans le menu principal de Visual Studio, choisissez Fichier>Nouveau>Projet et tapez « makefile » dans la zone de recherche. Si vous voyez plusieurs modèles de projet, sélectionnez parmi les options en fonction de votre plateforme cible.

  2. Windows uniquement : dans la page Paramètres de configuration du projet Makefile, fournissez les informations de commande, de sortie, de nettoyage et de reconstruction pour les builds de débogage et de vente au détail. Choisissez Suivant si vous souhaitez spécifier différents paramètres pour une configuration release.

  3. Choisissez Terminer pour fermer la boîte de dialogue et ouvrir le projet nouvellement créé dans Explorateur de solutions.

Pour créer un projet Makefile dans Visual Studio 2015 ou Visual Studio 2017

  1. Dans la page de démarrage de Visual Studio, tapez « makefile » dans la zone de recherche Nouveau projet. Ou dans la boîte de dialogue Nouveau projet, développez Visual C++>Général (Visual Studio 2015) ou Autre (Visual Studio 2017), puis sélectionnez Projet Makefile dans le volet Modèles pour ouvrir l’Assistant Projet.

  2. Dans la page Paramètres de l’application, indiquez les informations relatives à la ligne de commande, à la sortie, au nettoyage et à la regénération pour les builds Debug et Retail.

  3. Choisissez Terminer pour fermer l’Assistant et ouvrir le projet nouvellement créé dans Explorateur de solutions.

Vous pouvez afficher et modifier les propriétés du projet dans sa page de propriétés. Pour plus d’informations sur l’affichage de la page de propriétés, consultez Définir le compilateur C++ et les propriétés de build dans Visual Studio.

Assistant Projet Makefile

Une fois que vous avez créé un projet Makefile, vous pouvez afficher et modifier chacune des options suivantes dans la page Nmake de la page de propriétés du projet.

  • Ligne de commande Générer : spécifie la ligne de commande à exécuter lorsque l’utilisateur sélectionne Générer dans le menu Générer. Cette option est affichée dans le champ Ligne de commande Build de la page Nmake de la page de propriétés du projet.

  • Sortie : spécifie le nom du fichier qui contiendra la sortie de la ligne de commande. Par défaut, cette option est basée sur le nom du projet. Cette option est affichée dans le champ Sortie de la page Nmake de la page de propriétés du projet.

  • Commandes Nettoyer : spécifie la ligne de commande à exécuter lorsque l’utilisateur sélectionne Nettoyer dans le menu Générer. Cette option est affichée dans le champ Ligne de commande Clean de la page Nmake de la page de propriétés du projet.

  • Régénérer la ligne de commande : spécifie la ligne de commande à exécuter lorsque l’utilisateur sélectionne Reconstruire dans le menu Build. Cette option est affichée dans le champ Ligne de commande Rebuild All de la page Nmake de la page de propriétés du projet.

Comment : activer IntelliSense pour des projets Makefile

IntelliSense ne fonctionne pas dans les projets Makefile quand des paramètres de projet, ou options du compilateur, sont incorrectement configurés. Suivez ces étapes pour configurer des projets Makefile afin qu’IntelliSense fonctionne comme prévu :

  1. Ouvrez la boîte de dialogue Pages de propriétés. Pour plus d’informations, consultez Définir le compilateur C++ et les propriétés de build dans Visual Studio.

  2. Sélectionnez la page de propriétés de configuration>NMake.

  3. Modifiez les propriétés sous IntelliSense selon les besoins :

    • Définissez la propriété Définitions de préprocesseur pour définir n’importe quel symbole de préprocesseur dans votre projet Makefile. Pour plus d’informations, consultez /D (Définitions de préprocesseur).

    • Définissez la propriété Chemin de recherche Include de façon à spécifier la liste des répertoires dans lesquels le compilateur effectue ses recherches afin de résoudre les références de fichier passées aux directives de préprocesseur dans votre projet Makefile. Pour plus d’informations, consultez /I (Répertoires Include supplémentaires).

    • Pour les projets qui sont générés à l’aide de CL.EXE depuis une fenêtre Commande, définissez la variable d’environnement INCLUDE de façon à spécifier les répertoires dans lesquels le compilateur effectue ses recherches afin de résoudre les références de fichier passées aux directives de préprocesseur dans votre projet Makefile.

    • Définissez la propriété Fichiers Include forcés pour spécifier les fichiers d’en-tête à traiter lors de la génération de votre projet Makefile. Pour plus d’informations, consultez /FI (Nom du fichier Include forcé).

    • Définissez la propriété Chemin de recherche des assemblys pour spécifier la liste des répertoires dans lesquels le compilateur effectue ses recherches afin de résoudre les références aux assemblys .NET dans votre projet. Pour plus d’informations, consultez /AI (Spécifier des répertoires de métadonnées).

    • Définissez la propriété Utilisation forcée des assemblys pour spécifier les assemblys .NET à traiter lors de la génération de votre projet Makefile. Pour plus d’informations, consultez /FU (Nom forcé #using Fichier).

    • Définissez la propriété Options supplémentaires pour spécifier d’autres commutateurs du compilateur à utiliser par IntelliSense lors de l’analyse des fichiers C++.

  4. Choisissez OK pour fermer les pages de propriétés.

  5. Utilisez la commande Enregistrer tout pour enregistrer les paramètres modifiés du projet.

La prochaine fois que vous ouvrez votre projet Makefile dans l’environnement de développement Visual Studio, exécutez les commandes Nettoyer la solution, puis Générer la solution sur votre projet Makefile. IntelliSense doit fonctionner correctement dans l’IDE.

Voir aussi

Utilisation de la fonctionnalité IntelliSense
Référence NMAKE
Guide pratique pour créer un projet C++ à partir du code existant
Caractères spéciaux dans un makefile
Contenu et fonctionnalités Makefile