Définir les propriétés du compilateur et de la BuildSet compiler and build properties

Dans l’IDE, toutes les informations nécessaires pour générer un projet sont exposées sous forme de propriétés.In the IDE, all information that is needed to build a project is exposed as properties. Ces informations comprennent le nom de l’application, l’extension (par exemple, DLL, LIB, EXE), les options de compilateur, les options de l’éditeur de liens, les paramètres de débogueur, les étapes de génération personnalisée et bien d’autres choses.This information includes the application name, extension (such as DLL, LIB, EXE), compiler options, linker options, debugger settings, custom build steps, and many other things. En général, vous utilisez les pages de propriétés pour afficher et modifier ces propriétés.Typically, you use property pages to view and modify these properties. Pour accéder aux pages de propriétés, choisissez Propriétés du projet > ProjectName dans le menu principal, ou cliquez avec le bouton droit sur le nœud du projet dans Explorateur de solutions et choisissez Propriétés.To access the property pages, choose Project > projectname Properties from the main menu, or right-click on the project node in Solution Explorer and choose Properties.

Propriétés par défautDefault properties

Quand vous créez un projet, le système attribue des valeurs à différentes propriétés.When you create a project, the system assigns values for various properties. Les valeurs par défaut varient légèrement en fonction du type de projet et des options que vous choisissez dans l’Assistant Application.The defaults vary somewhat depending on the kind of project and what options you choose in the app wizard. Par exemple, un projet ATL a des propriétés relatives aux fichiers MIDL, mais elles sont absentes dans une application console de base.For example, an ATL project has properties related to MIDL files, but these are absent in a basic console application. Les propriétés par défaut sont affichées dans le volet Général des pages de propriétés :The default properties are shown in the General pane in the Property Pages:

Paramètres par défaut des projets Visual C++Visual C++ Project Defaults

Application de propriétés aux configurations de build et aux plateformes ciblesApplying properties to build configurations and target platforms

Certaines propriétés, comme le nom de l’application, s’appliquent à toutes les variations de build, quelle que soit la plateforme cible, ou qu’il s’agisse d’une build debug ou release.Some properties, such as the application name, apply to all build variations, regardless of the target platform or whether it is a debug or release build. Toutefois, la plupart des propriétés dépendent de la configuration.But most properties are configuration-dependent. C’est parce que le compilateur doit connaître la plateforme sur laquelle le programme va s’exécuter ainsi que les options de compilateur à utiliser pour générer le code approprié.This is because the compiler has to know what specific platform the program will run on and what specific compiler options to use in order to generate the correct code. Par conséquent, quand vous définissez une propriété, faites bien attention à la configuration et à la plateforme auxquelles la nouvelle valeur doit s’appliquer.Therefore, when you set a property, it is important to pay attention to which configuration and platform the new value should apply to. Doit-elle s’appliquer uniquement aux builds Debug Win32 ou aussi à Debug ARM et Debug x64 ?Should it apply only to Debug Win32 builds, or should it also apply to Debug ARM and Debug x64? Par exemple, la propriété Optimisation est définie par défaut sur Augmenter la vitesse (/O2) dans une configuration Release, mais est désactivée dans la configuration Debug.For example, the Optimization property, by default, is set to Maximize Speed (/O2) in a Release configuration, but is disabled in the Debug configuration.

Les pages de propriétés sont conçues pour vous permettre de toujours voir, et si nécessaire modifier, la configuration et la plateforme auxquelles une valeur de propriété doit s’appliquer.The property pages are designed so that you can always see, and if necessary modify, which configuration and platform a property value should apply to. L’illustration suivante montre les pages de propriétés avec les informations de configuration et de plateforme dans les zones de liste en haut.The following illustration shows the property pages with the configuration and platform information in the list boxes at the top. Quand la propriété Optimisation est définie ici, elle s’applique uniquement aux builds Debug Win32, qui est la configuration active, comme indiqué par les flèches rouges.When the Optimization property is set here, it will apply only to Debug Win32 builds, which happens to be the active configuration, as shown by the red arrows.

Pages de propriétés Visual C++ montrant la configuration activeVisual C++ Property Pages showing active configuration

L’illustration suivante montre la même page de propriétés de projet, mais la configuration a été remplacée par Release.The following illustration shows the same project property page, but the configuration has been changed to Release. Notez le changement de valeur de la propriété Optimisation.Note the different value for the Optimization property. Notez également que la configuration active est toujours Debug.Also note that the active configuration is still Debug. Vous pouvez définir ici les propriétés de n’importe quelle configuration, et pas seulement celles de la configuration active.You can set properties for any configuration here; it doesn't have to be the active one.

Pages de propriétés Visual C+ + montrant une configuration ReleaseVisual C++ Property Pages showing release config

Plateformes ciblesTarget platforms

Plateforme cible fait référence au type d’appareil et/ou de système d’exploitation sur lequel doit s’exécuter l’exécutable.Target platform refers to the kind of device and/or operating system that the executable will run on. Vous pouvez générer un projet pour plusieurs plateformes.You can build a project for more than one platform. Les plateformes cibles disponibles pour les projets C++ varient selon le type de projet et sont entre autres : Win32, x64, ARM, Android et iOS.The available target platforms for C++ projects depend on the kind of project; they include but are not limited to Win32, x64, ARM, Android, and iOS. La plateforme cible x86 que vous pouvez voir dans le Gestionnaire de configuration est identique à Win32 dans les projets C++ natifs.The x86 target platform that you might see in Configuration Manager is identical to Win32 in native C++ projects. Win32 désigne Windows 32 bits et x64 désigne Windows 64 bits.Win32 means 32-bit Windows and x64 means 64-bit Windows. Pour plus d’informations sur ces deux plateformes, consultez Exécution d’applications 32 bits.For more information about these two platforms, see Running 32-bit applications.

La valeur de plateforme cible N’importe quelle UC que vous pouvez voir dans le Gestionnaire de configuration n’a aucun effet sur les projets C++ natifs, elle concerne les projets C++/ CLI et d’autres types de projet .NET.The Any CPU target platform value that you might see in Configuration Manager has no effect on native C++ projects; it is relevant for C++/CLI and other .NET project types. Pour plus d’informations, consultez l’article /CLRIMAGETYPE (Spécifier le type d’une image CLR).For more information, see /CLRIMAGETYPE (Specify Type of CLR Image).

Pour plus d’informations sur la définition des propriétés d’une version Debug, consultez:For more information about setting properties for a Debug build, see:

C++options du compilateur et de l’éditeur de liensC++ compiler and linker options

C++les options du compilateur et de l’éditeur de liens se trouvent sous les nœuds CC++ / et éditeur de liens dans le volet gauche sous propriétés de configuration.C++ compiler and linker options are located under the C/C++ and Linker nodes in the left pane under Configuration Properties. Celles-ci se traduisent directement par des options de ligne de commande qui seront passées au compilateur.These translate directly to command-line options that will be passed to the compiler. Pour lire la documentation relative à une option spécifique, sélectionnez l’option dans le volet central et appuyez sur F1.To read documentation about a specific option, select the option in the center pane and press F1. Ou, vous pouvez parcourir la documentation de toutes les options disponibles dans Options du compilateur MSVC et options de l' éditeur de liens MSVC.Or, you can browse documentation for all the options at MSVC Compiler Options and MSVC Linker Options.

La boîte de dialogue pages de propriétés affiche uniquement les pages de propriétés pertinentes pour le projet actuel.The Property Pages dialog box shows only the property pages that are relevant to the current project. Par exemple, si le projet n'a pas de fichier .idl, la page de propriétés MIDL n'est pas affichée.For example, if the project does not have an .idl file, the MIDL property page is not displayed. Pour plus d’informations sur le paramètre de chaque page de propriétés, consultez pagesC++de propriétés ().For more information about the setting on each property pages, see Property Pages (C++).

Valeurs de répertoire et de chemin d’accèsDirectory and path values

MSBuild prend en charge l’utilisation de constantes au moment de la compilation appelées «macros» pour certaines valeurs de chaîne, notamment les répertoires et les chemins d’accès.MSBuild supports the use of compile-time constants called "macros" for certain string values include directories and paths. Celles-ci sont exposées dans les pages de propriétés, où vous pouvez vous y référer et les modifier à l’aide de l' éditeur de propriétés.These are exposed in the property pages, where you can refer to and modify them by using the Property Editor.

L’illustration suivante montre les pages de propriétés d’un projet C++ Visual Studio.The following illustration shows the property pages for a Visual Studio C++ project. Dans le volet gauche, la règle Répertoires VC++ est sélectionnée et le volet droit répertorie les propriétés associées à cette règle.In the left pane, the VC++ Directories rule is selected, and the right pane lists the properties that are associated with that rule. Les $(...) valeurs sont appelées macros.The $(...) values are called macros. Une macro est une constante de compilation qui peut référencer une valeur définie par Visual Studio ou le système MSBuild, ou une valeur définie par l’utilisateur.A macro is a compile-time constant that can refer to a value that is defined by Visual Studio or the MSBuild system, or to a user-defined value. En utilisant des macros au lieu de valeurs codées en dur telles que les chemins d’accès aux répertoires, vous pouvez partager plus facilement les paramètres des propriétés entre les ordinateurs et entre les versions de Visual Studio, et vous pouvez mieux vous assurer que les paramètres de votre projet participent correctement à la propriété. héritage.By using macros instead of hard-coded values such as directory paths, you can more easily share property settings between machines and between versions of Visual Studio, and you can better ensure that your project settings participate correctly in property inheritance.

Pages de propriétés de projetProject property pages

Vous pouvez utiliser l’éditeur de propriétés pour voir les valeurs de toutes les macros disponibles.You can use the Property Editor to view the values of all available macros.

Macros prédéfiniesPredefined macros

macros globalesglobal macros
S'applique à tous les éléments dans une configuration de projet.Applies to all items in a project configuration. Possède la syntaxe $(name).Has the syntax $(name). Un exemple de macro globale est $(VCInstallDir), qui stocke le répertoire racine de votre installation de Visual Studio.An example of a global macro is $(VCInstallDir), which stores the root directory of your Visual Studio installation. Une macro globale correspond à PropertyGroup dans MSBuild.A global macro corresponds to a PropertyGroup in MSBuild.

macros d’élémentitem macros
Possède la syntaxe %(name).Has the syntax %(name). Pour un fichier, une macro d'élément s'applique uniquement à ce fichier ; par exemple, vous pouvez utiliser %(AdditionalIncludeDirectories) pour spécifier les répertoires Include qui s'appliquent uniquement à un fichier particulier.For a file, an item macro applies only to that file—for example, you can use %(AdditionalIncludeDirectories) to specify include directories that apply only to a particular file. Ce genre de macro d'élément correspond à des métadonnées ItemGroup dans MSBuild.This kind of item macro corresponds to an ItemGroup metadata in MSBuild. Lorsqu'elle est utilisée dans le contexte d'une configuration de projet, une macro d'élément s'applique à tous les fichiers d'un certain type.When it's used in the context of a project configuration, an item macro applies to all files of a certain type. Par exemple, la propriété de configuration C/C++ Définitions de préprocesseur peut prendre une macro d’élément %(PreprocessorDefinitions) qui s’applique à tous les fichiers .cpp dans le projet.For example, the C/C++ Preprocessor Definitions configuration property can take a %(PreprocessorDefinitions) item macro that applies to all .cpp files in the project. Ce genre de macro d'élément correspond à des métadonnées ItemDefinitionGroup dans MSBuild.This kind of item macro corresponds to an ItemDefinitionGroup metadata in MSBuild. Pour plus d’informations, consultez l’article Item Definitions (Définitions des éléments).For more information, see Item Definitions.

macros définies par l'utilisateurUser-defined macros

Vous pouvez créer des macros définies par l’utilisateur à utiliser comme variables dans les générations de projet.You can create user-defined macros to use as variables in project builds. Par exemple, vous pouvez créer une macro définie par l'utilisateur qui fournit une valeur pour une étape de génération personnalisée ou un outil de génération personnalisée.For example, you could create a user-defined macro that provides a value to a custom build step or a custom build tool. Une macro définie par l'utilisateur est une paire nom/valeur.A user-defined macro is a name/value pair. Dans un fichier projet, utilisez la notation $( nom ) pour accéder à la valeur.In a project file, use the $(name) notation to access the value.

Une macro définie par l’utilisateur est stockée dans une feuille de propriétés.A user-defined macro is stored in a property sheet. Si votre projet ne contient pas encore de feuille de propriétés, vous pouvez en créer un en suivant les étapes décrites dans partager ou réutiliser des paramètres de projet Visual Studio.If your project does not already contain a property sheet, you can create one by following the steps under Share or reuse Visual Studio project settings.

Pour créer une macro définie par l’utilisateurTo create a user-defined macro

  1. Ouvrez la fenêtre Gestionnaire de propriétés .Open the Property Manager window. (Dans la barre de menus, choisissez Afficher > Gestionnaire de propriétés ou Afficher > d'autres > Gestionnaire de propriétésWindows.) Ouvrez le menu contextuel d’une feuille de propriétés (son nom se termine par. User), puis choisissez Propriétés.(On the menu bar, choose View > Property Manager or View > Other Windows > Property Manager.) Open the shortcut menu for a property sheet (its name ends in .user) and then choose Properties. La boîte de dialogue Pages de propriétés pour cette feuille de propriétés s’ouvre.The Property Pages dialog box for that property sheet opens.

  2. Dans le volet gauche de la boîte de dialogue, sélectionnez Macros utilisateur.In the left pane of the dialog box, select User Macros. Dans le volet droit, choisissez le bouton Ajouter une macro pour ouvrir la boîte de dialogue Ajouter une macro utilisateur.In the right pane, choose the Add Macro button to open the Add User Macro dialog box.

  3. Dans la boîte de dialogue, spécifiez un nom et une valeur pour la macro.In the dialog box, specify a name and value for the macro. Vous pouvez aussi cocher la case Définir cette macro comme variable d’environnement dans l’environnement de génération.Optionally, select the Set this macro as an environment variable in the build environment check box.

Éditeur de propriétésProperty Editor

Vous pouvez utiliser l'Éditeur de propriétés pour modifier certaines propriétés de type chaîne et sélectionner des macros comme valeurs.You can use the Property Editor to modify certain string properties and select macros as values. Pour accéder à l'Éditeur de propriétés, sélectionnez une propriété dans une page de propriétés, puis cliquez sur la flèche vers le bas située à droite.To access the Property Editor, select a property on a property page and then choose the down arrow button on the right. Si la liste déroulante contient <Modifier> , vous pouvez choisir cette option pour afficher l’Éditeur de propriétés pour cette propriété.If the drop-down list contains <Edit>, then you can choose it to display the Property Editor for that property.

Property_Editor_DropdownProperty_Editor_Dropdown

Dans l’Éditeur de propriétés, vous pouvez choisir le bouton Macros pour voir les macros disponibles et leurs valeurs actuelles.In the Property Editor, you can choose the Macros button to view the available macros and their current values. L’illustration suivante montre l’Éditeur de propriétés pour la propriété Autres répertoires Include après la sélection du bouton Macros.The following illustration shows the Property Editor for the Additional Include Directories property after the Macros button was chosen. Quand vous cochez la case Hériter des paramètres par défaut du parent ou du projet et que vous ajoutez une nouvelle valeur, celle-ci est ajoutée aux valeurs actuellement héritées.When the Inherit from parent or project defaults check box is selected and you add a new value, it is appended to any values that are currently being inherited. Si vous désactivez la case à cocher, votre nouvelle valeur remplace les valeurs héritées.If you clear the check box, your new value replaces the inherited values. Dans la plupart des cas, laissez la case à cocher activée.In most cases, leave the check box selected.

Éditeur de propriétés, Visual C#++Property editor, Visual C++

Ajouter un répertoire include au jeu de répertoires par défautAdd an include directory to the set of default directories

Lorsque vous ajoutez un répertoire Include à un projet, il est important de ne pas remplacer tous les répertoires par défaut.When you add an include directory to a project, it is important not to override all the default directories. La méthode appropriée pour ajouter un répertoire est d’ajouter le nouveau chemin, par exemple, "C:\MyNewIncludeDir", puis la macro $(IncludePath) à la valeur de propriété.The correct way to add a directory is to append the new path, for example "C:\MyNewIncludeDir", and then to Append the $(IncludePath) macro to the property value.

Parcourir et rechercher rapidement toutes les propriétésQuickly browse and search all properties

La page de propriétés Toutes les options (sous le nœud Propriétés de configuration | C/C++ dans la boîte de dialogue Pages de propriétés) offre un mode de navigation et de recherche rapide dans les propriétés disponibles au sein du contexte actuel.The All Options property page (under the Configuration Properties | C/C++ node in the Property Pages dialog box) provides a quick way to browse and search the properties that are available in the current context. Elle comporte une zone de recherche spéciale et possède une syntaxe simple pour aider à filtrer les résultats :It has a special search box and a simple syntax to help you filter results:

Aucun préfixe :No prefix:
Effectuer une recherche dans les noms de propriétés uniquement (la sous-chaîne ne respecte pas la casse).Search in property names only (case-insensitive substring).

'/' ou '-' :'/' or '-' :
Effectuer une recherche uniquement dans les commutateurs de compilation (le préfixe ne respecte pas la casse)Search only in compiler switches (case-insensitive prefix)

v :v:
Effectuer une recherche uniquement dans les valeurs (la sous-chaîne ne respecte pas la casse).Search only in values (case-insensitive substring).

Définir des variables d’environnement pour une buildSet environment variables for a build

Le compilateur MSVC (cl. exe) reconnaît certaines variables d’environnement, plus spécifiquement LIB, LIBPATH, PATH et INCLUDe.The MSVC compiler (cl.exe) recognizes certain environment variables, specifically LIB, LIBPATH, PATH, and INCLUDE. Quand vous effectuez une génération avec l’IDE, les propriétés définies dans la page de propriétés Page de propriétés, Répertoires VC++ sont utilisées pour définir ces variables d’environnement.When you build with the IDE, the properties that are set in the VC++ Directories Property Page property page are used to set those environment variables. Si les valeurs LIB, LIBPATH et INCLUDE ont déjà été définies, par exemple par une invite de commandes développeur, elles sont remplacées par les valeurs des propriétés MSBuild correspondantes.If LIB, LIBPATH, and INCLUDE values have already been set, for example by a Developer Command Prompt, they are replaced with the values of the corresponding MSBuild properties. La génération ajoute ensuite la valeur de la propriété de répertoires d'exécutables Répertoires VC++ à PATH.The build then prepends the value of the VC++ Directories executable directories property to PATH. Vous pouvez définir une variable d’environnement définie par l’utilisateur en créant une macro définie par l’utilisateur et en cochant la case Définir cette macro comme variable d’environnement dans l’environnement de génération.You can set a user-defined environment variable by created a user-defined macro and then checking the box that says Set this macro as an environment variable in the build environment.

Définir des variables d’environnement pour une session de débogageSet environment variables for a debugging session

Dans le volet gauche de la boîte de dialogue Pages de propriétés du projet, développez le nœud Propriétés de configuration et sélectionnez Débogage.In the left pane of the project's Property Pages dialog box, expand Configuration Properties and then select Debugging.

Dans le volet droit, modifiez les paramètres de projet Environnement ou Fusion de l’environnement, puis choisissez le bouton OK.In the right pane, modify the Environment or Merge Environment project settings and then choose the OK button.

Dans cette sectionIn this section

Partager ou réutiliser les paramètres de projet Visual StudioShare or reuse Visual Studio project settings
Comment créer un fichier. props avec des paramètres de build personnalisés qui peuvent être partagés ou réutilisés.How to create a .props file with custom build settings that can be shared or reused.

Héritage de propriétés de projetProject property inheritance
Décrit l’ordre d’évaluation des fichiers. props,. targets,. vcxproj et des variables d’environnement dans le processus de génération.Describes the order of evaluation for the .props, .targets, .vcxproj files and environment variables in the build process.

Modifier les propriétés et les cibles sans changer le fichier projetModify properties and targets without changing the project file
Comment créer des paramètres de build temporaires sans avoir à modifier un fichier projet.How to create temporary build settings without having to modify a project file.

Voir aussiSee also

Projets Visual Studio - C++Visual Studio Projects - C++
Structure des fichiers .vcxproj et .props.vcxproj and .props file structure
Fichiers XML des pages de propriétésProperty page XML files