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:<IA32|SSE|SSE2|AVX|AVX2|AVX512> Configuration minimale requise pour l’architecture du processeur. IA32, SSE et SSE2 sont x86 uniquement.
/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 case activée 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 Action déconseillée. 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 transmis à cl.exe dans le texte de diagnostic.
/Fd Renomme le fichier de base de données du programme.
/Fe Renomme le fichier exécutable.
/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 Action déconseillée. 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[-] Action déconseillée. 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[-] Action déconseillée. Active la gestion synchrone des exceptions. Utilisez /EH à la place.
/Gy[-] Active la liaison au niveau des fonctions.
/GZ Action déconseillée. Active les vérifications rapides. (Identique à /RTC1)
/Gz Utilise la convention d'appel __stdcall . (x86 uniquement)
/H Action déconseillée. 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 Action déconseillée. 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 Action déconseillée. 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 Activez les case activée de runtime rapide (équivalent à /RTCsu).
/RTCc Convertissez en case activée de type plus petit au moment de l’exécution.
/RTCs Activez les case activée d’exécution de frame de pile.
/RTCu Active les case activée d’utilisation locale 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 Action déconseillée. 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 .
/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 Traitez 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 Action déconseillée. 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 case activée syntactiques en mode conformité dans les lambda 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 case activée 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 Action déconseillée. 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 case activée sums 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.

Voir aussi

Options du compilateur MSVC
Syntaxe de ligne de commande du compilateur MSVC