Options du compilateur classées par ordre alphabétique
Ce tableau contient une liste alphabétique d’options du compilateur. Pour obtenir la liste des options du compilateur par catégorie, consultez les options du compilateur répertoriées par article sur la catégorie .
Options du compilateur
Option | Objectif |
---|---|
@ |
Spécifie un fichier réponse. |
/? |
Affiche la liste des options du compilateur. |
/AI<dir> |
Spécifie un répertoire à rechercher pour résoudre les références de fichiers passées à la #using directive. |
/analyze |
Active l'analyse du code. |
/arch |
Configuration minimale requise pour l’architecture du processeur. |
/arm64EC |
Générez du code compatible avec l’ABI arm64EC. |
/await |
Activez les extensions coroutines (fonctions pouvant être reprise). |
/await:strict |
Activez la prise en charge standard de la coroutine C++20 avec les versions antérieures du langage. |
/bigobj |
Augmente le nombre de sections adressables dans un fichier .obj. |
/C |
Conserve les commentaires pendant le prétraitement. |
/c |
Compile sans liaison. |
/cgthreads |
Spécifie le nombre de threads cl.exe à utiliser pour l’optimisation et la génération de code. |
/clr |
Produit un fichier de sortie à exécuter sur le CLR (Common Language Runtime). |
/clr:implicitKeepAlive- |
Désactiver l’émission implicite de System::GC::KeepAlive(this) . |
/clr:initialAppDomain |
Activez le comportement AppDomain initial de Visual C++ 2002. |
/clr:netcore |
Produisez des assemblys ciblant le runtime .NET Core. |
/clr:noAssembly |
Ne produisez pas d’assembly. |
/clr:nostdimport |
N’importez pas implicitement les assemblys requis. |
/clr:nostdlib |
Ignorez le répertoire .NET Framework système lors de la recherche d’assemblys. |
/clr:pure |
Produire un fichier de sortie il uniquement (aucun code exécutable natif). |
/clr:safe |
Produire un fichier de sortie vérifiable en IL uniquement. |
/constexpr:backtrace<N> |
Afficher les évaluations N constexpr dans les diagnostics (valeur par défaut : 10). |
/constexpr:depth<N> |
Limite de profondeur de récursivité pour constexpr l’évaluation (valeur par défaut : 512). |
/constexpr:steps<N> |
Terminer l’évaluation constexpr après N étapes (par défaut : 100000) |
/D<name>{=|#}<text> |
Définit des constantes et des macros. |
/diagnostics |
Format de diagnostic : imprime les informations de colonne. |
/diagnostics:caret[-] |
Format de diagnostic : imprime la colonne et la ligne de source indiquée. |
/diagnostics:classic |
Utilisez le format de diagnostic hérité. |
/doc |
Traite les commentaires de documentation pour les diriger vers un fichier XML. |
/E |
Copie la sortie du préprocesseur vers une sortie standard. |
/EHa |
Activez la gestion des exceptions C++ (avec des exceptions SEH). |
/EHc |
extern "C" a la valeur par défaut nothrow . |
/EHr |
Générez toujours des noexcept vérifications d’arrêt du runtime. |
/EHs |
Activez la gestion des exceptions C++ (aucune exception SEH). |
/EP |
Copie la sortie du préprocesseur vers une sortie standard. |
/errorReport |
Déconseillé. Les paramètres du rapport d’erreurs Windows (WER) contrôlent les rapports d’erreurs. |
/execution-charset |
Définissez le jeu de caractères d’exécution. |
/experimental:log |
Active la sortie SARIF structurée expérimentale. |
/experimental:module |
Active la prise en charge des modules expérimentaux. |
/exportHeader |
Créez les fichiers d’unités d’en-tête (.ifc ) spécifiés par les arguments d’entrée. |
/external:anglebrackets |
Traitez tous les en-têtes inclus par le biais <> d’un environnement externe. |
/external:env:<var> |
Spécifiez une variable d’environnement avec des emplacements d’en-têtes externes. |
/external:I <path> |
Spécifiez l’emplacement des en-têtes externes. |
/external:templates[-] |
Évaluez le niveau d’avertissement dans la chaîne d’instanciation du modèle. |
/external:W<n> |
Définissez le niveau d’avertissement pour les en-têtes externes. |
/F |
Définit la taille de la pile. |
/FA |
Configure un fichier de listes d'assemblys. |
/Fa |
Crée un fichier de listes d'assemblys. |
/fastfail |
Activez le mode d’échec rapide. |
/favor:<blend|AMD64|INTEL64|ATOM> |
Produit du code optimisé pour une architecture spécifiée ou pour une plage d'architectures. |
/FC |
Affiche le chemin complet des fichiers de code source passés à cl.exe dans le texte de diagnostic. |
/Fd |
Renomme le fichier de base de données du programme. |
/Fe |
Renomme le fichier exécutable. |
/feature |
Activer les fonctionnalités d’architecture.17.10 |
/FI<file> |
Prétraite le fichier Include spécifié. |
/Fi |
Spécifie le nom du fichier de sortie prétraité. |
/Fm |
Crée un fichier de mappage. |
/Fo |
Crée un fichier objet. |
/Fp |
Spécifie un nom de fichier d'en-tête précompilé. |
/fp:contract |
Prenez en compte les contractions à virgule flottante lors de la génération du code. |
/fp:except[-] |
Envisagez d’utiliser des exceptions à virgule flottante lors de la génération du code. |
/fp:fast |
Modèle à virgule flottante « rapide » ; les résultats sont moins prévisibles. |
/fp:precise |
Modèle à virgule flottante « précis » ; les résultats sont prévisibles. |
/fp:strict |
Modèle à virgule flottante « strict » (implique /fp:except ). |
/fpcvt:BC |
Conversion à virgule flottante compatible descendante avec les conversions d’entiers non signés. |
/fpcvt:IA |
Comportement de conversion d’entier non signé à virgule flottante native Intel. |
/FR , /Fr |
Noms des fichiers de navigateur générés .sbr . /Fr est déconseillé. |
/FS |
Force les écritures dans le fichier PDB à sérialiser via MSPDBSRV.EXE. |
/fsanitize |
Active la compilation de l’instrumentation de l’assainisseur, telle que AddressSanitizer. |
/fsanitize-coverage |
Active la compilation de l’instrumentation de couverture du code pour les bibliothèques telles que LibFuzzer. |
/Ft<dir> |
Emplacement des fichiers d’en-tête générés pour #import . |
/FU<file> |
Force l’utilisation d’un nom de fichier, comme si elle avait été passée à la #using directive. |
/Fx |
Fusionne le code injecté avec le fichier source. |
/GA |
Optimise pour les applications Windows. |
/Gd |
Utilise la convention d'appel __cdecl . (x86 uniquement) |
/Ge |
Déconseillé. Active les tests de pile. |
/GF |
Active le regroupement des chaînes. |
/GH |
Appelle la fonction de raccordement _pexit . |
/Gh |
Appelle la fonction de raccordement _penter . |
/GL[-] |
Active l'optimisation de l'ensemble du programme. |
/Gm[-] |
Déconseillé. Active la régénération minimale. |
/GR[-] |
Active les informations de type au moment de l'exécution (RTTI, Run-Time Type Information). |
/Gr |
Utilise la convention d'appel __fastcall . (x86 uniquement) |
/GS[-] |
Vérifie la sécurité des mémoires tampons. |
/Gs[n] |
Gère les tests de pile. |
/GT |
Prend en charge la sécurité des fibres pour les données allouées en utilisant un stockage local des threads de type statique. |
/Gu[-] |
Vérifiez que les fonctions distinctes ont des adresses distinctes. |
/guard:cf[-] |
Ajoute des vérifications de sécurité de protection du flux de contrôle. |
/guard:ehcont[-] |
Active les métadonnées de continuation EH. |
/Gv |
Utilise la convention d'appel __vectorcall . (x86 et x64 uniquement) |
/Gw[-] |
Active l'optimisation globale des données de la totalité du programme. |
/GX[-] |
Déconseillé. Active la gestion synchrone des exceptions. Utilisez /EH à la place. |
/Gy[-] |
Active la liaison au niveau des fonctions. |
/GZ |
Déconseillé. Active les vérifications rapides. (Identique à /RTC1 ) |
/Gz |
Utilise la convention d'appel __stdcall . (x86 uniquement) |
/H |
Déconseillé. Limite la longueur des noms externes (publics). |
/headerName |
Générez une unité d’en-tête à partir de l’en-tête spécifié. |
/headerUnit |
Spécifiez où rechercher le fichier d’unité d’en-tête (.ifc ) pour l’en-tête spécifié. |
/HELP |
Affiche la liste des options du compilateur. |
/homeparams |
Force l'écriture des paramètres passés dans les registres à leurs emplacements sur la pile lors de l'entrée de la fonction. Cette option de compilateur concerne uniquement les compilateurs x64 (compilation native et croisée). |
/hotpatch |
Crée une image corrigeable en mémoire. |
/I<dir> |
Recherche des fichiers Include dans un répertoire. |
/ifcOutput |
Spécifiez le nom ou le répertoire du fichier de sortie pour les fichiers générés .ifc . |
/interface |
Traitez le fichier d’entrée en tant qu’unité d’interface de module. |
/internalPartition |
Traitez le fichier d’entrée comme une unité de partition interne. |
/J |
Change le type char par défaut. |
/jumptablerdata |
Placez les tables de saut d’instruction switch case dans la .rdata section. |
/JMC |
Prend en charge le débogage C++ natif juste mon code. |
/kernel |
Le compilateur et l’éditeur de liens créent un binaire qui peut être exécuté dans le noyau Windows. |
/LD |
Crée une bibliothèque de liens dynamiques. |
/LDd |
Crée une bibliothèque de liens dynamiques de débogage. |
/link |
Passe l'option spécifiée à LINK. |
/LN |
Crée un MSIL .netmodule . |
/MD |
Compile pour créer une DLL multithread à l’aide de MSVCRT.lib. |
/MDd |
Compile pour créer une DLL multithread de débogage à l’aide de MSVCRTD.lib. |
/MP |
Génère plusieurs fichiers sources simultanément. |
/MT |
Compile pour créer un fichier exécutable multithread à l’aide de LIBCMT.lib. |
/MTd |
Compile pour créer un fichier exécutable multithread de débogage à l’aide de LIBCMTD.lib. |
/nologo |
Supprime l'affichage de la bannière d'ouverture de session. |
/O1 |
Crée un code compact. |
/O2 |
Crée un code rapide. |
/Ob<n> |
Contrôle l'expansion inline. |
/Od |
Désactive l'optimisation. |
/Og |
Déconseillé. Utilise des optimisations globales. |
/Oi[-] |
Génère des fonctions intrinsèques. |
/openmp |
#pragma omp Active dans le code source. |
/openmp:experimental |
Activez les extensions de langage OpenMP 2.0 et sélectionnez Extensions de langage OpenMP 3.0+. |
/openmp:llvm |
Extensions de langage OpenMP à l’aide du runtime LLVM. |
/options:strict |
Les options du compilateur non reconnues sont des erreurs. |
/Os |
Favorise la taille du code. |
/Ot |
Favorise la vitesse du code. |
/Ox |
Sous-ensemble de /O2 qui n’inclut pas /GF ou /Gy. |
/Oy |
Omet le pointeur de frame. (x86 uniquement) |
/P |
Écrit la sortie du préprocesseur dans un fichier. |
/PD |
Imprimez toutes les définitions de macro. |
/permissive[-] |
Définissez le mode de conformité standard. |
/PH |
Générer #pragma file_hash lors du prétraitement. |
/presetPadding |
Zéro initialise le remplissage pour les types de classes basés sur la pile. |
/Qfast_transcendentals |
Génère des fonctions transcendantes rapides. |
/QIfist |
Déconseillé. Supprime l'appel de la fonction d'assistance _ftol quand la conversion d'un type à virgule flottante vers un type intégral est requise. (x86 uniquement) |
/Qimprecise_fwaits |
Supprime les commandes fwait dans les blocs try . |
/QIntel-jcc-erratum |
Atténue l’impact sur les performances de la mise à jour du microcode Intel JCC erratum. |
/Qpar-report:<n> |
Active les niveaux de création de rapports pour la parallélisation automatique. |
/Qpar |
Active la parallélisation automatique des boucles. |
/Qsafe_fp_loads |
Utilise des instructions de déplacement d'entiers pour les valeurs à virgule flottante et désactive certaines optimisations de charge de virgule flottante. |
/Qspectre[-] |
Activez les atténuations pour CVE 2017-5753, pour une classe d’attaques Spectre. |
/Qspectre-load |
Générez des instructions de sérialisation pour chaque instruction de chargement. |
/Qspectre-load-cf |
Générez des instructions de sérialisation pour chaque instruction de flux de contrôle qui charge la mémoire. |
/Qvec-report:<n> |
Active les niveaux de création de rapports pour le vectorisation automatique. |
/reference |
Utilisez le module NOMMÉ IFC. |
/RTC1 |
Activer les vérifications rapides du runtime (équivalentes à /RTCsu ). |
/RTCc |
Convertissez en vérifications de type plus petites au moment de l’exécution. |
/RTCs |
Activez les vérifications du runtime d’images de pile. |
/RTCu |
Active les vérifications d’utilisation locales non initialisées. |
/scanDependencies |
Répertorier les dépendances de module dans le formulaire JSON standard C++. |
/sdl |
Activer davantage de fonctionnalités de sécurité et d’avertissements. |
/showIncludes |
Affiche la liste de tous les fichiers Include pendant la compilation. |
/source-charset |
Définissez le jeu de caractères source. |
/sourceDependencies |
Répertorier toutes les dépendances au niveau source. |
/sourceDependencies:directives |
Répertorier les dépendances de module et d’unité d’en-tête. |
/std:c++14 |
C++14 ISO/IEC 14882:2014 (valeur par défaut). |
/std:c++17 |
C++17 norme ISO/IEC 14882:2017. |
/std:c++20 |
C++20 ISO/IEC 14882:2020 standard. |
/std:c++latest |
Les dernières fonctionnalités de préversion standard C++ de brouillon. |
/std:c11 |
Norme ISO/IEC C11 9899:2011. |
/std:c17 |
Norme ISO/IEC 9899:2018 C17. |
/std:clatest |
Dernières fonctionnalités de préversion C standard. |
/TC |
Spécifie que tous les fichiers sources sont C. |
/Tc |
Spécifie un fichier source C. |
/TP |
Spécifie tous les fichiers sources sont C++. |
/Tp |
Spécifie un fichier source C++. |
/translateInclude |
Traitez #include comme import . |
/U<name> |
Supprime une macro prédéfinie. |
/u |
Supprime toutes les macros prédéfinies. |
/utf-8 |
Définissez les jeux de caractères source et d’exécution sur UTF-8. |
/V |
Déconseillé. Définit la chaîne version. |
/validate-charset |
Validez les fichiers UTF-8 uniquement pour les caractères compatibles. |
/vd{0|1|2} |
Supprime ou active les membres masqués de la classe vtordisp . |
/vlen |
Spécifie la longueur du vecteur. |
/vmb |
Utilise la meilleure base pour les pointeurs vers des membres. |
/vmg |
Utilise la généralité complète pour les pointeurs vers des membres. |
/vmm |
Déclare un héritage multiple. |
/vms |
Déclare un héritage simple. |
/vmv |
Déclare un héritage virtuel. |
/volatile:iso |
La sémantique d’acquisition/mise en production n’est pas garantie sur les accès volatiles. |
/volatile:ms |
Acquérir/libérer la sémantique garantie sur les accès volatiles. |
/volatileMetadata |
Générez des métadonnées sur les accès à la mémoire volatile. |
/w |
Désactivez tous les avertissements. |
/W0 , , /W1 /W2 , , /W3 /W4 |
Définissez le niveau d’avertissement de sortie. |
/w1<n> , , /w2<n> /w3<n> , ,/w4<n> |
Définissez le niveau d’avertissement pour l’avertissement spécifié. |
/Wall |
Activez tous les avertissements, y compris les avertissements désactivés par défaut. |
/wd<n> |
Désactivez l’avertissement spécifié. |
/we<n> |
Traitez l’avertissement spécifié comme une erreur. |
/WL |
Activez les diagnostics à une ligne pour les messages d’erreur et d’avertissement lors de la compilation du code source C++ à partir de la ligne de commande. |
/wo<n> |
Affichez l’avertissement spécifié une seule fois. |
/Wv:xx[.yy[.zzzzz]] |
Désactivez les avertissements introduits après la version spécifiée du compilateur. |
/WX |
Considérez les avertissements comme des erreurs. |
/X |
Ignore le répertoire Include standard. |
/Y- |
Ignore toutes les autres options d'en-tête précompilé pour la génération en cours. |
/Yc |
Créez un .PCH fichier. |
/Yd |
Déconseillé. Place des informations de débogage complètes dans tous les fichiers objets. Utilisez /Zi à la place. |
/Yl |
Injecte une référence PCH lors de la création d'une bibliothèque de débogage. |
/Yu |
Utilise un fichier d'en-tête précompilé pendant la génération. |
/Z7 |
Génère des informations de débogage compatibles C 7.0. |
/Za |
Désactive certaines extensions de langage C89 dans le code C. |
/Zc:__cplusplus[-] |
Activez la macro pour signaler la __cplusplus norme prise en charge (désactivée par défaut). |
/Zc:__STDC__ |
Activez la macro pour signaler que la __STDC__ norme C est prise en charge (désactivée par défaut). |
/Zc:alignedNew[-] |
Activez l’allocation dynamique alignée sur C++17 (activée par défaut en C++17). |
/Zc:auto[-] |
Appliquez la nouvelle signification C++ Standard pour auto (activé par défaut). |
/Zc:char8_t[-] |
Activez ou désactivez la prise en charge littérale native u8 C++20 comme const char8_t (désactivé par défaut, sauf sous /std:c++20 ). |
/Zc:enumTypes[-] |
Activez les règles C++ standard pour enum la déduction de type (désactivée par défaut). |
/Zc:externC[-] |
Appliquer des règles C++ standard pour extern "C" les fonctions (implicites par /permissive- ). |
/Zc:externConstexpr[-] |
Activez la liaison externe pour constexpr les variables (désactivées par défaut). |
/Zc:forScope[-] |
Appliquer des règles d’étendue C++ for standard (activées par défaut). |
/Zc:gotoScope |
Appliquer des règles C++ goto standard autour de l’initialisation des variables locales (implicite par /permissive- ). |
/Zc:hiddenFriend[-] |
Appliquer des règles d’ami masquées C++ standard (implicites par /permissive- ) |
/Zc:implicitNoexcept[-] |
Activez implicitement noexcept les fonctions requises (activées par défaut). |
/Zc:inline[-] |
Supprimez les fonctions ou données non référencées si elles sont COMDAT ou qu’elles ont une liaison interne uniquement (désactivée par défaut). |
/Zc:lambda[-] |
Activez le nouveau processeur lambda pour les vérifications syntaxiques en mode conformité dans les lambdas génériques. |
/Zc:noexceptTypes[-] |
Appliquez les règles C++17 noexcept (par défaut en C++17 ou version ultérieure). |
/Zc:nrvo[-] |
Activez les élisions de copie et de déplacement facultatives (activées par défaut sous /O2 , /permissive- ou /std:c++20 version ultérieure). |
/Zc:preprocessor[-] |
Utilisez le nouveau préprocesseur conforme (désactivé par défaut, sauf dans C11/C17). |
/Zc:referenceBinding[-] |
Un UDT temporaire ne sera pas lié à une référence non-const lvalue (désactivée par défaut). |
/Zc:rvalueCast[-] |
Appliquez les règles de conversion de type explicite C++ standard (désactivées par défaut). |
/Zc:sizedDealloc[-] |
Activez les fonctions de désallocation de taille globale C++14 (activées par défaut). |
/Zc:strictStrings[-] |
Désactivez le littéral de chaîne en char* ou wchar_t* la conversion (désactivé par défaut). |
/Zc:templateScope[-] |
Appliquez les règles d’ombre des paramètres de modèle C++ standard (désactivées par défaut). |
/Zc:ternary[-] |
Appliquer des règles d’opérateur conditionnel sur les types d’opérandes (désactivés par défaut). |
/Zc:threadSafeInit[-] |
Activez l’initialisation statique locale thread-safe (activée par défaut). |
/Zc:throwingNew[-] |
Supposons que operator new la levée est levée en cas d’échec (désactivée par défaut). |
/Zc:tlsGuards[-] |
Générer des vérifications d’exécution pour l’initialisation des variables TLS (activées par défaut). |
/Zc:trigraphs |
Activez les trigraphes (obsolètes, désactivés par défaut). |
/Zc:twoPhase[-] |
Utilisez un comportement d’analyse de modèle non conforme (conforme par défaut). |
/Zc:wchar_t[-] |
wchar_t est un type natif, et non un typedef (activé par défaut). |
/Zc:zeroSizeArrayNew[-] |
Appelez le membre new /delete pour les tableaux de taille zéro d’objets (activés par défaut). |
/Ze |
Déconseillé. Active les extensions de langage C89. |
/Zf |
Améliore le temps de génération PDB dans les builds parallèles. |
/ZH:[MD5|SHA1|SHA_256] |
Spécifie MD5, SHA-1 ou SHA-256 pour les sommes de contrôle dans les informations de débogage. |
/ZI |
Inclut des informations de débogage dans une base de données du programme compatible avec Modifier & Continuer. (x86 uniquement) |
/Zi |
Génère des informations de débogage complètes. |
/Zl |
Supprime le nom de la bibliothèque par défaut du .obj fichier. |
/Zm |
Spécifie la limite d'allocation de mémoire de l'en-tête précompilé. |
/Zo[-] |
Générez des informations de débogage plus riches pour le code optimisé. |
/Zp[n] |
Compresse les membres de la structure. |
/Zs |
Vérifie la syntaxe uniquement. |
/ZW |
Produit un fichier de sortie à exécuter sur Windows Runtime. |
17.10 Cette option est disponible à partir de Visual Studio 2022 version 17.10.
Voir aussi
Options du compilateur MSVC
Syntaxe de ligne de commande du compilateur MSVC