Compartir vía


Opciones del compilador por orden alfabético

Esta tabla contiene una lista alfabética de opciones del compilador. Para obtener una lista de las opciones del compilador por categoría, consulte el artículo Opciones del compilador por categoría.

Opciones del compilador

Opción Fin
@ Especifica un archivo de respuesta.
/? Enumera las opciones del compilador.
/AI<dir> Especifica un directorio de búsqueda para resolver las referencias a archivos que se transfieren a la directiva #using.
/analyze Permite el análisis de código
/arch Requisitos de arquitectura de CPU mínimos.
/arm64EC Genere código compatible con la ABI arm64EC.
/await Habilita las extensiones de corrutinas (funciones reanudables).
/await:strict Habilita la compatibilidad de corrutinas de C++20 estándar con versiones anteriores del lenguaje.
/bigobj Aumenta el número de secciones direccionables en un archivo .obj.
/C Conserva los comentarios durante el preprocesamiento
/c Compila sin vincular.
/cgthreads Especifica el número de subprocesos de cl.exe que se deben usar para la optimización y la generación de código.
/clr Genera un archivo de salida para ejecutar en Common Language Runtime.
/clr:implicitKeepAlive- Desactiva la emisión implícita de System::GC::KeepAlive(this).
/clr:initialAppDomain Habilita el comportamiento inicial de AppDomain de Visual C++ 2002.
/clr:netcore Produce ensamblados que tienen como destino el entorno de ejecución de .NET Core.
/clr:noAssembly No genera un ensamblado.
/clr:nostdimport No importa los ensamblados necesarios implícitamente.
/clr:nostdlib Omite el directorio del sistema de .NET Framework al buscar ensamblados.
/clr:pure Produce un archivo de salida de solo IL (sin código ejecutable nativo).
/clr:safe Produce un archivo de salida que se puede comprobar solo mediante IL.
/constexpr:backtrace<N> Muestra N evaluaciones constexpr en diagnósticos (valor predeterminado: 10).
/constexpr:depth<N> Límite de profundidad de recursividad para la evaluación constexpr (valor predeterminado: 512).
/constexpr:steps<N> Finaliza la evaluación constexpr después de N pasos (valor predeterminado: 100 000).
/D<name>{=|#}<text> Define constantes y macros.
/diagnostics Formato de diagnóstico: imprime información de columna.
/diagnostics:caret[-] Formato de diagnóstico: imprime la columna y la línea de origen indicada.
/diagnostics:classic Usa el formato de diagnóstico heredado.
/doc Procesa los comentarios de documentación generando un archivo XML.
/E Copia los resultados del preprocesador a resultados estándar.
/EHa Habilita el control de excepciones de C++ (con excepciones SEH).
/EHc extern "C" tiene nothrow como valor predeterminado.
/EHr Genera siempre comprobaciones de terminación en tiempo de ejecución noexcept.
/EHs Habilita el control de excepciones de C++ (sin excepciones SEH).
/EP Copia los resultados del preprocesador a resultados estándar.
/errorReport Obsoleto. Informe de errores de Windows (WER) control de errores de configuración.
/execution-charset Establece el juego de caracteres de ejecución.
/experimental:log Habilita la salida de SARIF estructurada experimental.
/experimental:module Habilita la compatibilidad con módulos experimentales.
/exportHeader Crea los archivos de unidades de encabezado (.ifc) especificados por los argumentos de entrada.
/external:anglebrackets Trata todos los encabezados incluidos mediante <> como externos.
/external:env:<var> Especifica una variable de entorno con ubicaciones de encabezados externos.
/external:I <path> Especifica la ubicación de encabezados externos.
/external:templates[-] Evalúa el nivel de advertencia en la cadena de creación de una instancia de plantilla.
/external:W<n> Establece el nivel de advertencia para los encabezados externos.
/F Establece el tamaño de la pila.
/FA Configura un archivo de lista de ensamblados.
/Fa Crea un archivo de lista de ensamblado.
/fastfail Habilita el modo de error rápido.
/favor:<blend|AMD64|INTEL64|ATOM> Muestra el código optimizado para una arquitectura especificada o para un intervalo de arquitecturas.
/FC Muestra la ruta de acceso completa de los archivos de código fuente que se pasan a cl.exe en texto de diagnóstico.
/Fd Cambia el nombre del archivo de la base de datos de programa.
/Fe Cambia el nombre del archivo ejecutable.
/feature Habilite las características de arquitectura.17.10
/FI<file> Preprocesa el archivo de inclusión especificado.
/Fi Especifica el nombre del archivo de salida preprocesado.
/Fm Crea un archivo de asignaciones.
/Fo Crea un archivo de objeto.
/Fp Especifica el nombre de un archivo de encabezado precompilado.
/fp:contract Tiene en cuenta las contracciones de punto flotante al generar código.
/fp:except[-] Tiene en cuenta las excepciones de punto flotante al generar el código.
/fp:fast Modelo de punto flotante "rápido"; los resultados son menos predecibles.
/fp:precise Modelo de punto flotante "preciso"; los resultados son predecibles.
/fp:strict Modelo de punto flotante "estricto" (implica /fp:except).
/fpcvt:BC Conversiones de punto flotante a entero sin signo compatibles con versiones anteriores.
/fpcvt:IA Comportamiento de conversión nativo de Intel de punto flotante a entero sin signo.
/FR, /Fr Asigna un nombre a los archivos del explorador .sbr generados. /Fr está en desuso.
/FS Fuerza que las operaciones de escritura en el archivo PDB se serialicen mediante MSPDBSRV.EXE.
/fsanitize Habilita la compilación de instrumentación del saneador, como AddressSanitizer.
/fsanitize-coverage Habilita la compilación de instrumentación de cobertura de código para bibliotecas como LibFuzzer.
/Ft<dir> Ubicación de los archivos de encabezado generados para #import.
/FU<file> Fuerza el uso de un nombre de archivo, como si se hubiera transferido a la directiva #using.
/Fx Combina el código insertado con el archivo de código fuente.
/GA Optimiza el código para aplicaciones Windows.
/Gd Usa la convención de llamada __cdecl . (solo x86)
/Ge Obsoleto. Activa las comprobaciones de la pila.
/GF Habilita la agrupación de cadenas.
/GH Llama a la función de enlace _pexit.
/Gh Llama a la función de enlace _penter.
/GL[-] Habilita la optimización completa del programa.
/Gm[-] Obsoleto. Habilita la recompilación mínima.
/GR[-] Habilita la información de tipo en tiempo de ejecución (RTTI).
/Gr Usa la convención de llamada __fastcall . (solo x86)
/GS[-] Comprueba la seguridad de búfer.
/Gs[n] Controla las comprobaciones de la pila.
/GT Admite la seguridad para fibras para los datos asignados mediante almacenamiento local de subprocesos estáticos.
/Gu[-] Garantiza que las distintas funciones tengan direcciones diferentes.
/guard:cf[-] Agrega las comprobaciones de seguridad de protección de flujo de control.
/guard:ehcont[-] Habilita metadatos de continuación de control de excepciones.
/Gv Usa la convención de llamada __vectorcall . (solo x86 y x64)
/Gw[-] Habilita la optimización global de los datos de todo el programa.
/GX[-] Obsoleto. Habilita el control sincrónico de excepciones. En su lugar, use /EH.
/Gy[-] Habilita la vinculación en el nivel de función.
/GZ Obsoleto. Habilita las comprobaciones rápidas. (Igual que /RTC1).
/Gz Usa la convención de llamada __stdcall . (solo x86)
/H Obsoleto. Restringe la longitud de los nombres externos (públicos).
/headerName Crea una unidad de encabezado a partir del encabezado especificado.
/headerUnit Especifica dónde buscar el archivo de unidad de encabezado (.ifc) para el encabezado especificado.
/HELP Enumera las opciones del compilador.
/homeparams Fuerza la escritura de parámetros pasados en registros en sus ubicaciones en la pila a la entrada de la función. Esta opción del compilador es solo para compiladores x64 (compilación nativa y cruzada).
/hotpatch Crea una imagen a la que se puede aplicar una revisión reciente.
/I<dir> Busca archivos de inclusión en un directorio.
/ifcOutput Especifique el nombre de archivo de salida o el directorio para los archivos creados .ifc .
/interface Trata el archivo de entrada como una unidad de interfaz de módulo.
/internalPartition Trata el archivo de entrada como una unidad de partición interna.
/J Cambia el tipo char predeterminado.
/jumptablerdata Coloque las tablas de salto de instrucción switch case en la .rdata sección .
/JMC Admite la depuración nativa de C++ de tipo "Solo mi código".
/kernel El compilador y el enlazador crean un binario que se puede ejecutar en el kernel de Windows.
/LD Crea una biblioteca de vínculos dinámicos.
/LDd Crea una biblioteca de vínculos dinámicos para depuración.
/link Pasa la opción especificada a LINK.
/LN Crea un .netmodule MSIL.
/MD Compila para crear una DLL multiproceso mediante MSVCRT.lib.
/MDd Compila para crear una DLL multiproceso para depuración mediante MSVCRTD.lib.
/MP Compila varios archivos de código fuente simultáneamente.
/MT Compila para crear un archivo ejecutable multiproceso mediante LIBCMT.lib.
/MTd Compila para crear un archivo ejecutable multiproceso para depuración mediante LIBCMTD.lib.
/nologo Suprime la presentación de la pancarta de inicio de sesión.
/O1 Crea código pequeño.
/O2 Crea código rápido.
/Ob<n> Controla la expansión en línea.
/Od Deshabilita la optimización.
/Og Obsoleto. Usa optimizaciones globales.
/Oi[-] Genera funciones intrínsecas.
/openmp Habilita #pragma omp en el código fuente.
/openmp:experimental Habilita las extensiones de lenguaje OpenMP 2.0 más la selección de las extensiones de lenguaje OpenMP 3.0+.
/openmp:llvm Extensiones de lenguaje OpenMP que usan el entorno de ejecución de LLVM.
/options:strict Las opciones del compilador no reconocidas son errores.
/Os Favorece el código pequeño.
/Ot Favorece el código rápido.
/Ox Subconjunto de /O2 que no incluye /GF ni /Gy.
/Oy Omite el puntero de marco. (solo x86)
/P Escribe los resultados del preprocesador en un archivo.
/PD Imprime todas las definiciones de macros.
/permissive[-] Establece el modo de conformidad estándar.
/PH Genera #pragma file_hash al preprocesar.
/presetPadding Inicializa el relleno a cero para tipos de clase basados en la pila.
/Qfast_transcendentals Genera funciones transcendentales rápidas.
/QIfist Obsoleto. Suprime la llamada de la función del asistente _ftol cuando se requiere la conversión de un tipo de punto flotante a un tipo entero. (solo x86)
/Qimprecise_fwaits Quita los comandos fwait del interior de los bloques try .
/QIntel-jcc-erratum Mitiga el impacto en el rendimiento de la actualización de microcódigo de comprobación de errores de Intel JCC.
/Qpar-report:<n> Habilita los niveles de informe para la ejecución en paralelo automática.
/Qpar Habilita la ejecución en paralelo automática de bucles.
/Qsafe_fp_loads Utiliza instrucciones de movimiento de enteros para valores de punto flotante y deshabilita ciertas optimizaciones de carga de punto flotante.
/Qspectre[-] Habilita mitigaciones para CVE 2017-5753, para una clase de ataques de Spectre.
/Qspectre-load Genera instrucciones de serialización para cada instrucción de carga.
/Qspectre-load-cf Genera instrucciones de serialización para cada instrucción de flujo de control que cargue memoria.
/Qvec-report:<n> Habilita los niveles de informe para la vectorización automática.
/reference Usa IFC de módulo con nombre.
/RTC1 Habilita comprobaciones rápidas en tiempo de ejecución (equivalentes a /RTCsu).
/RTCc Realiza una conversión en comprobaciones de tipo más pequeñas en tiempo de ejecución.
/RTCs Habilita las comprobaciones en tiempo de ejecución del marco de pila.
/RTCu Habilita las comprobaciones de uso local no inicializadas.
/scanDependencies Enumera las dependencias del módulo en el formulario JSON estándar de C++.
/sdl Habilita más características y advertencias de seguridad.
/showIncludes Muestra una lista de todos los archivos de inclusión durante la compilación.
/source-charset Establece el juego de caracteres de origen.
/sourceDependencies Enumera todas las dependencias de nivel de origen.
/sourceDependencies:directives Enumera las dependencias de módulo y unidad de encabezado.
/std:c++14 ISO/IEC 14882:2014 del estándar de C++14 (valor predeterminado).
/std:c++17 ISO/IEC 14882:2017 del estándar de C++17.
/std:c++20 ISO/IEC 14882:2020 del estándar de C++20.
/std:c++latest Características de versión preliminar del estándar de C++ del último borrador.
/std:c11 ISO/IEC 9899:2011 del estándar de C11.
/std:c17 ISO/IEC 9899:2018 del estándar de C17.
/std:clatest Las características más recientes de la versión preliminar estándar de C.
/TC Especifica que todos los archivos de código fuente son C.
/Tc Especifica un archivo de código fuente de C.
/TP Especifica que todos los archivos de código fuente son C++.
/Tp Especifica un archivo de código fuente de C++.
/translateInclude Trata #include como import.
/U<name> Quita una macro predefinida.
/u Quita todas las macros predefinidas.
/utf-8 Establece juegos de caracteres de origen y ejecución en UTF-8.
/V Obsoleto. Establece la cadena de versión.
/validate-charset Valida los archivos UTF-8 solo para caracteres compatibles.
/vd{0|1|2} Suprime o habilita los miembros de la clase vtordisp ocultos.
/vmb Usa la base más apropiada para los punteros a miembros.
/vmg Usa generalidad completa para los punteros a miembros.
/vmm Declara la herencia múltiple.
/vms Declara la herencia simple.
/vmv Declara la herencia virtual.
/volatile:iso La adquisición o liberación de semántica no se garantiza en accesos volátiles.
/volatile:ms La adquisición o liberación de semántica se garantiza en accesos volátiles.
/volatileMetadata Genera metadatos en accesos a la memoria volátil.
/w Deshabilita todas las advertencias.
/W0, /W1, /W2, , /W3, /W4 Establece el nivel de advertencia de salida.
/w1<n>, /w2<n>, , /w3<n>, /w4<n> Establece el nivel de advertencia para la advertencia especificada.
/Wall Habilita todas las advertencias, incluso las que están deshabilitadas de forma predeterminada.
/wd<n> Deshabilita la advertencia especificada.
/we<n> Trata la advertencia especificada como un error.
/WL Habilita los diagnósticos de una línea para los mensajes de error y de advertencia cuando se compila código fuente de C++ desde la línea de comandos.
/wo<n> Muestra la advertencia especificada solo una vez.
/Wv:xx[.yy[.zzzzz]] Deshabilita las advertencias introducidas después de la versión especificada del compilador.
/WX Trata las advertencias como errores.
/X Omite el directorio de archivos de inclusión estándar.
/Y- Omite todas las demás opciones del compilador de encabezado precompilado en la generación actual.
/Yc Crea un archivo .PCH.
/Yd Obsoleto. Coloca información completa de depuración en todos los archivos de objeto. En su lugar, use /Zi.
/Yl Inserta una referencia de PCH cuando se crea una biblioteca de depuración.
/Yu Usa un archivo de encabezado precompilado durante la compilación.
/Z7 Genera información de depuración compatible con C 7.0.
/Za Deshabilita algunas extensiones de lenguaje C89 en código C.
/Zc:__cplusplus[-] Habilita la macro __cplusplus para notificar el estándar admitido (desactivada de forma predeterminada).
/Zc:__STDC__ Se admite la habilitación de la __STDC__ macro para notificar el estándar de C (desactivado de forma predeterminada).
/Zc:alignedNew[-] Habilita la asignación dinámica alineada en exceso de C++17 (activada de forma predeterminada en C++17).
/Zc:auto[-] Aplica el nuevo significado de C++ estándar para auto (activada de forma predeterminada).
/Zc:char8_t[-] Habilita o deshabilita la compatibilidad con literales nativos u8 de C++20 como const char8_t (desactivada de forma predeterminada, excepto en /std:c++20).
/Zc:enumTypes[-] Habilite las reglas estándar de C++ para la enum deducción de tipos (desactivado de forma predeterminada).
/Zc:externC[-] Aplica reglas de C++ estándar para las funciones extern "C" (implícitas en /permissive-).
/Zc:externConstexpr[-] Habilita la vinculación externa para las variables constexpr (desactivada de forma predeterminada).
/Zc:forScope[-] Aplica reglas de ámbito for de C++ estándar (activadas de forma predeterminada).
/Zc:gotoScope Aplicar reglas estándar de C++ goto en torno a la inicialización de variables locales (implícitas por /permissive-).
/Zc:hiddenFriend[-] Aplica reglas de confianza ocultas de C++ estándar (implícitas en /permissive-).
/Zc:implicitNoexcept[-] Habilita noexcept implícito en las funciones necesarias (activado de forma predeterminada).
/Zc:inline[-] Quita funciones o datos sin referencia si son COMDAT o solo tienen vinculación interna (desactivado de forma predeterminada).
/Zc:lambda[-] Habilita el nuevo procesador lambda para las comprobaciones sintácticas en modo de conformidad en expresiones lambda genéricas.
/Zc:noexceptTypes[-] Aplica reglas noexcept de C++17 (activadas de forma predeterminada en C++17 o versiones posteriores).
/Zc:nrvo[-] Habilite la copia opcional y mueva las elisiones (de forma predeterminada en /O2, /permissive-o /std:c++20 posterior).
/Zc:preprocessor[-] Usa el nuevo preprocesador de conformidad (desactivado de forma predeterminada, excepto en C11/C17).
/Zc:referenceBinding[-] Un UDT temporal no se enlazará a una referencia lvalue que no es const (desactivado de forma predeterminada).
/Zc:rvalueCast[-] Aplica reglas de conversión de tipos explícitas de C++ estándar (desactivadas de forma predeterminada).
/Zc:sizedDealloc[-] Habilita las funciones de desasignación de tamaño global de C++14 (activado de forma predeterminada).
/Zc:strictStrings[-] Deshabilitar el literal de cadena en la conversión de char* o wchar_t* (desactivada de forma predeterminada).
/Zc:templateScope[-] Aplicar reglas de sombreado de parámetros de plantilla de C++ estándar (desactivadas de forma predeterminada).
/Zc:ternary[-] Aplica reglas de operador condicionales en tipos de operando (desactivadas de forma predeterminada).
/Zc:threadSafeInit[-] Habilita la inicialización estática local segura para subprocesos (activada de forma predeterminada).
/Zc:throwingNew[-] Supone que operator new produce un error (desactivado de forma predeterminada).
/Zc:tlsGuards[-] Genera comprobaciones en tiempo de ejecución para la inicialización de variables TLS (activado de forma predeterminada).
/Zc:trigraphs Habilita trígrafos (obsoleto, desactivado de forma predeterminada).
/Zc:twoPhase[-] Use el comportamiento de análisis de plantillas no conforme (conforme de forma predeterminada).
/Zc:wchar_t[-] wchar_t es un tipo nativo, no una definición de tipo (activado de forma predeterminada).
/Zc:zeroSizeArrayNew[-] Llame al miembro new/delete para matrices de tamaño cero de objetos (activado de forma predeterminada).
/Ze Obsoleto. Habilita las extensiones de lenguaje C89.
/Zf Mejora el tiempo de generación de PDB en compilaciones paralelas.
/ZH:[MD5|SHA1|SHA_256] Especifica MD5, SHA-1 o SHA-256 para las sumas de comprobación en la información de depuración.
/ZI Incluye la información de depuración en una base de datos de programa compatible con Editar y continuar. (solo x86)
/Zi Genera información de depuración completa.
/Zl Quita el nombre de la biblioteca predeterminada del archivo .obj.
/Zm Especifica el límite de asignación de memoria del encabezado precompilado.
/Zo[-] Genera información de depuración más completa para el código optimizado.
/Zp[n] Empaqueta los miembros de la estructura.
/Zs Comprueba únicamente la sintaxis.
/ZW Genera un archivo de salida para que se ejecute en Windows Runtime.

17.10 Esta opción está disponible a partir de la versión 17.10 de Visual Studio 2022.

Consulte también

Opciones del compilador de MSVC
Sintaxis de línea de comandos del compilador de MSVC