Compartir a través de


Páginas de propiedades de C/C++

Las páginas de propiedades siguientes se encuentran en Proyecto>Propiedades>Propiedades de configuración>C/C++:

Propiedades generales de C/C++

Directorios de inclusión adicionales

Especifica uno o más directorios para agregarlos a la ruta de inclusión. Si hay más de un directorio, sepárelos con puntos y coma (";"). Establece la opción del compilador /I (directorios de inclusión adicionales).

Directorios adicionales de #using

Especifica uno o varios directorios en los que buscar para resolver los nombres pasados a una directiva #using. Si hay más de un directorio, sepárelos con puntos y coma (";"). Establece la opción del compilador /AI.

Directorios de BMI adicionales

Especifica uno o varios directorios en los que se buscará para resolver los nombres pasados a una directiva import. Si hay más de un directorio, sepárelos con puntos y coma (";"). Establece la opción del compilador /ifcSearchDir[path].

Dependencias de módulo adicionales

Especifica uno o varios módulos que se usarán para resolver los nombres pasados a una directiva import. Si hay más de un directorio, sepárelos con puntos y coma (";"). Establece la opción del compilador /reference.

Dependencias de unidad de encabezado adicionales

Especifica una o varias unidades de encabezado que se usarán para resolver los nombres pasados a una directiva de encabezado import. Si hay más de un directorio, sepárelos con puntos y coma (";"). Establece la opción del compilador /headerUnit.

Examinar los orígenes de las dependencias de módulo

Cuando se establece en , el compilador examina todos los orígenes de C++ (no solo los orígenes de interfaz del módulo y de unidad de encabezado) para las dependencias de unidad de módulo y de encabezado. El sistema de compilación compila el gráfico de dependencias completo, lo que garantiza que todos los módulos importados y las unidades de encabezado se compilan antes de compilar los archivos que dependen de ellos. Cuando se combina con Convertir directivas include en import, cualquier archivo de encabezado especificado en un archivo header-units.json en el mismo directorio que el archivo de encabezado se compila en una unidad de encabezado.

Los archivos que tienen la extensión , y los archivos que tienen sus propiedades de archivo C/C++ configuradas con la propiedad Compile As establecida a Compile as C++ Header Unit (/exportHeader), siempre se examinan.

Convertir directivas include en import

Cuando se establece en , el compilador trata una directiva #include como una directiva import si se cumplen ciertas condiciones: el archivo de encabezado se especifica en un archivo header-units.json del mismo directorio y hay disponible una unidad de encabezado compilada (un archivo .ifc) para el archivo de encabezado. De lo contrario, el archivo de encabezado se trata como #include normal. El archivo header-units.json se usa para compilar unidades de encabezado para cada #include sin duplicación de símbolos. En combinación con Escanear fuentes para dependencias de módulo, el compilador encuentra automáticamente todos los archivos de encabezado que pueden compilarse en unidades de encabezado. Esta propiedad establece la opción del compilador /translateInclude.

Formato de información de depuración

Especifica el tipo de información de depuración generado por el compilador. Esta propiedad requiere configuraciones de enlazador compatibles. Establece las opciones del compilador /Z7, /Zi y /ZI (Formato de la información de depuración).

Opciones

  • Ninguno: no produce información de depuración, por lo que la compilación puede ser más rápida.
  • Compatible con C7: seleccione el tipo de información de depuración que se crea para el programa y si esta información se conserva en archivos objeto (.obj) o en una base de datos de programa (PDB).
  • Base de datos de programa :genera una base de datos de programa (PDB) que contiene información de tipos e información de depuración simbólica que se usa con el depurador. La información de depuración simbólica incluye los nombres y los tipos de las variables, así como las funciones y los números de línea.
  • Base de datos de programa para editar y continuar : genera una base de datos de programa, como se ha descrito anteriormente, en un formato que admita la característica Editar y continuar .

Compatibilidad con la depuración de Solo mi código

Agrega código auxiliar para habilitar la depuración de Solo mi código en esta unidad de compilación. Establece /JMC.

Compatibilidad con la depuración dinámica de C++

(Versión preliminar) Establece la marca /dynamicdeopt del compilador para activar la depuración dinámica de C++. Coloque puntos de interrupción desoptimizados y realice un paso en cualquier lugar con la desoptimización de la función a petición. Use este modo para depurar código optimizado.

Compatibilidad con Common Language Runtime

Use el servicio de runtime de .NET. Este modificador no es compatible con otros modificadores; consulte la documentación sobre la familia de modificadores /clr para obtener más información.

Opciones

  • Sin soporte para Common Language Runtime: sin soporte para Common Language Runtime.
  • Compatibilidad con Common Language Runtime: crea metadatos para la aplicación que otras aplicaciones con CLR pueden consumir. También permite que la aplicación consuma tipos y datos en los metadatos de otros componentes de CLR.
  • Compatibilidad con Common Language Runtime de MSIL puro: genera un archivo de salida de solo MSIL sin código ejecutable nativo, aunque puede contener tipos nativos compilados para MSIL.
  • Compatibilidad segura con Common Language Runtime de MSIL: genera un archivo de salida solo de MSIL (sin código ejecutable nativo) y verificable.

Consumo de extensiones de Windows Runtime

Consume las extensiones de lenguaje de Windows Runtime. Establece /ZW.

Suprimir la pancarta de inicio

Suprime la presentación del banner de inicio de sesión cuando se inicia el compilador y muestra mensajes informativos durante la compilación.

Nivel de advertencia

Permite seleccionar cómo será de estricto el compilador en cuanto a los errores de código. Establece /W0 - /W4.

Opciones

  • Desactivar todas las advertencias: el nivel 0 deshabilita todas las advertencias.
  • Nivel 1: el nivel 1 muestra advertencias graves. Este es el nivel de advertencia predeterminado en la línea de comandos.
  • Nivel 2: el nivel 2 muestra todas las advertencias de nivel 1 y advertencias menos graves que las de ese nivel.
  • Nivel 3: el nivel 3 muestra todas las advertencias de nivel 2 y todas las demás advertencias recomendadas para fines de producción.
  • Nivel 4: el nivel 4 muestra todas las advertencias de nivel 3, además de advertencias informativas que, en la mayoría de los casos, se pueden omitir de forma segura.
  • Habilitar todas las advertencias: habilita todas las advertencias, incluidas las deshabilitadas de manera predeterminada.

Tratar advertencias como errores

Trata todas las advertencias del compilador como errores. En un proyecto nuevo, probablemente lo mejor sea usar /WX en cada compilación. Resuelva todas las advertencias para que haya el menor número posible de defectos de código difíciles de encontrar.

Versión de advertencia

Oculta las advertencias generadas después de una versión específica del compilador. Establece /Wv:xx[.yy[.zzzzz]].

Formato de diagnóstico

Permite diagnósticos avanzados con información de columna y contexto de origen en los mensajes de diagnóstico.

Opciones

  • Caret; proporciona información de columna en el mensaje de diagnóstico. Además, muestra la línea de código fuente correspondiente con una careta que indica la columna problemática.
  • Información de columna: proporciona además el número de columna dentro de la línea donde se emite el diagnóstico, si procede.
  • Clásico: solo genera los mensajes de diagnóstico anteriores y concisos con el número de línea.

Comprobaciones de SDL

Comprobaciones recomendadas del ciclo de vida de desarrollo de seguridad adicional (SDL); incluye la habilitación de más características de generación de código seguro y habilita otras advertencias relevantes para la seguridad como errores. Establece /sdl y /sdl-.

Compilación multiprocesador

Habilite la compilación de varios procesadores. Establece la opción del compilador /MP.

Habilitar AddressSanitizer

Compila y enlaza el programa con instrumentación AddressSanitizer. Esta propiedad admite compilaciones de destino x86 y x64. Establece la opción del compilador /fsanitize.

Habilitación de la compatibilidad con Fuzzer (experimental)

Compila programas con Fuzzer. Habilite AddressSanitizer para obtener los mejores resultados. Actualmente está disponible para compilaciones x86 y x64. Establece /fsanitize=fuzzer.

Propiedades de optimización de C/C++

Optimización

Seleccione la opción para la optimización del código; elija Personalizada para usar opciones de optimización específicas. Establece /Od, /O1 y /O2.

Opciones

  • Personalizado: optimización personalizada.
  • Deshabilitado: deshabilita la optimización.
  • Optimización máxima (favorece el tamaño): equivalente a /Os /Oy /Ob2 /Gs /GF /Gy
  • Optimización máxima (favorece la velocidad): equivalente a /Oi /Ot /Oy /Ob2 /Gs /GF /Gy
  • Optimizaciones (favorece la velocidad): equivalente a /Oi /Ot /Oy /Ob2

Expansión de funciones en línea

Seleccione el nivel de expansión de funciones insertadas para la compilación. Establece /Ob.

Opciones

  • Valor predeterminado
  • Deshabilitado: deshabilita la expansión en línea, que está activada de forma predeterminada.
  • Only __inline: expande solo las funciones marcadas como inline, __forceinline o __inline. O bien, en una función miembro de C++, se define dentro de una declaración de clase.
  • Cualquiera adecuado: permite la expansión de las funciones marcadas como inline o __inline y de cualquier otra función que elija el compilador. (La expansión se produce a discreción del compilador, a menudo conocido como autoinlining.)

Habilitar funciones intrínsecas

Habilita funciones intrínsecas. El uso de funciones intrínsecas genera código más rápido, pero posiblemente más grande. Establece /Oi.

Preferir el tamaño o la velocidad

Si se debe potenciar el tamaño o la velocidad del código; "Optimización global" debe activarse. Establece /Ot y /Os.

Opciones

  • Potenciar código pequeño: minimiza el tamaño de los EXE y los archivos DLL al indicar al compilador que favorezca el tamaño con respecto a la velocidad.
  • Potenciar código rápido: maximiza la velocidad de los EXE y los archivos DLL al indicar al compilador que favorece la velocidad con respecto al tamaño. (Este valor es el predeterminado).
  • Ninguno: sin optimización de tamaño y velocidad.

Omitir puntero de marcos

Suprime la creación de punteros de marcos en la pila de llamadas.

Habilitar optimizaciones seguras para fibra

Permite optimizar el espacio de memoria cuando se usan las fibras y el acceso al almacenamiento local del hilo. Establece /GT.

Optimización de todo el programa

Facilita las optimizaciones entre módulos al retrasar la generación de código hasta el tiempo de enlace. Requiere la opción del enlazador Generación de código de tiempo de vínculo. Establece /GL.

Propiedades de preprocesador de C/C++

Definiciones de preprocesador

Define los símbolos de preprocesamiento para el archivo de código fuente.

Anular definiciones del preprocesador

Especifica la anulación de una o varias definiciones del preprocesador. Establece /U.

Anular todas las definiciones del preprocesador

Anula la definición de todos los valores del preprocesador definidos previamente. Establece /u.

Omitir rutas de acceso estándar Include

Impide que el compilador busque archivos de inclusión en los directorios especificados en las variables de entorno INCLUDE.

Preprocesar a un archivo

Preprocesa archivos de origen de C y C++ y escribe la salida preprocesada en un archivo. Esta opción suprime la compilación y no produce ningún archivo .obj.

Preprocesamiento Suprimir números de línea

Preprocesar sin directivas de línea.

Mantener comentarios

Suprime la franja de comentarios del código fuente; requiere establecer al menos una de las opciones de preprocesamiento. Establece /C.

Utilice el preprocesador conforme a los estándares

Use un preprocesador de conformidad estándar (/Zc:preprocessor). Actualmente está implícito en /std:c11 y versiones posteriores. Para usar el preprocesador heredado, establezca esta propiedad en "No".

Propiedades de generación de código C/C++

Habilitación de la agrupación de cadenas

El compilador solo crea una copia de solo lectura de cadenas idénticas en la imagen del programa. Da como resultado programas más pequeños, una optimización que se denomina agrupación de cadenas. /O1, /O2 y /ZI establecen automáticamente la opción /GF.

Habilitar recompilación mínima

Habilita la recompilación mínima, que determina si es necesario recompilar los archivos de origen de C++ que incluyen definiciones de clase de C++ cambiadas y almacenadas en archivos de encabezado .h.

Habilitar excepciones de C++

Especifica el modelo de control de excepciones que usará el compilador.

Opciones

  • Sí, con excepciones SEH: modelo de control de excepciones que detecta las excepciones asincrónicas (estructuradas) y sincrónicas (C++). Establece /EHa.
  • : modelo de control de excepciones que solo detecta las excepciones de C++ e indica al compilador que presuponga que las funciones de C externas no generarán ninguna excepción de C++. Establece /EHsc.
  • Sí, con funciones de C externas: modelo de control de excepciones que solo detecta las excepciones de C++ e indica al compilador que presuponga que las funciones de C externas generarán excepciones. Establece /EHs.
  • No: sin manejo de excepciones.

Comprobación de tipos más pequeños

Active la verificación de conversión a tipos más pequeños. Es incompatible con cualquier tipo de optimización excepto la depuración. Establece /RTCc.

Comprobaciones en tiempo de ejecución básicas

Active las comprobaciones básicas de errores en tiempo de ejecución; es incompatible con cualquier tipo de optimización distinto a la depuración. Establece /RTCs, /RTCu y /RTC1.

Opciones

  • Marcos de pila: habilita la comprobación de errores en tiempo de ejecución de los marcos de pila.
  • Variables sin inicializar: notifica cuándo se usa una variable sin haberse inicializado.
  • Ambos (/RTC1, equiv. a /RTCsu): equivalente a /RTCsu.
  • Valor predeterminado: comprobaciones en tiempo de ejecución predeterminadas.

Biblioteca en tiempo de ejecución

Especifique la biblioteca en tiempo de ejecución para la vinculación. Establece /MT, /MTd, /MD y /MDd.

Opciones

  • Varios subprocesos: hace que la aplicación use la versión estática con varios subprocesos de la biblioteca en tiempo de ejecución.
  • Depuración multiproceso : define _DEBUG y _MT. Esta opción también hace que el compilador coloque el nombre LIBCMTD.lib de la biblioteca en el .obj archivo para que el enlazador use LIBCMTD.lib para resolver símbolos externos.
  • DLL de varios subprocesos: hace que la aplicación use la versión específica para varios subprocesos y la versión específica para DLL de la biblioteca en tiempo de ejecución. Define _MT y _DLL, y hace que el compilador coloque el nombre de biblioteca MSVCRT.lib en el archivo .obj.
  • DLL de depuración de varios subprocesos: define _DEBUG, _MT y _DLL, y hace que la aplicación use la versión de depuración de varios subprocesos y específica para DLL de la biblioteca en tiempo de ejecución. También hace que el compilador coloque el nombre MSVCRTD.lib de la biblioteca en el .obj archivo.

Alineación de elementos de estructura

Especifica límites de 1, 2, 4 o 8 bytes para la alineación de miembros de estructura. Establece /Zp.

Opciones

  • 1 Byte : empaqueta estructuras en límites de un byte. Igual que /Zp.
  • 2 Bytes : empaqueta estructuras en límites de dos bytes.
  • 4 Bytes : empaqueta estructuras en límites de cuatro bytes.
  • 8 Bytes : empaqueta estructuras en límites de ocho bytes (valor predeterminado).
  • 16 Bytes - empaqueta estructuras en límites de dieciséis bytes.
  • Valor predeterminado: configuración de alineación predeterminada.

Comprobación de seguridad

La comprobación de seguridad ayuda a detectar desbordamientos del búfer de pila, un ataque común contra la seguridad de un programa.

Opciones

  • Deshabilitar comprobación de seguridad: deshabilita la comprobación de seguridad. Establece /GS-.
  • Habilitar comprobación de seguridad: habilita la comprobación de seguridad. Establece /GS.

Protección de flujo de control

La verificación de seguridad de guardia ayuda a detectar intentos de despachar a un bloque de código ilegal.

Opciones

  • : habilita la comprobación de seguridad con conjuntos de cláusulas de restricción /guard:cf.
  • No

Habilitar vinculación en el nivel de función

Permite que el compilador empaquete las funciones individuales con formato de funciones empaquetadas (COMDATs). Requerido para habilitar la función Editar y Continuar. Establece /Gy.

Habilitar la generación de código paralelo

Permite al compilador generar código paralelo para bucles identificados mediante #pragma loop(hint_parallel[(n)]) cuando la optimización está habilitada.

Habilitar conjunto de instrucciones mejoradas

Habilite el uso de instrucciones que se encuentran en procesadores que admiten conjuntos de instrucciones mejoradas. Algunos ejemplos son las mejoras SSE, SSE2, AVX y AVX2 en IA-32. Además, las mejoras de AVX y AVX2 en x64. Actualmente, /arch:SSE y /arch:SSE2 solo están disponibles en compilaciones para la arquitectura x86. Si no se especifica ninguna opción, el compilador usa instrucciones que se encuentran en los procesadores que admiten SSE2. El uso de instrucciones mejoradas se puede deshabilitar con /arch:IA32. Para obtener más información, vea/arch (x86), /arch (x64), /arch (ARM64)y /arch (ARM).

Opciones

  • Extensiones SIMD de Streaming - Extensiones SIMD de Streaming. Establece /arch:SSE.
  • Extensiones SIMD de streaming 2: extensiones SIMD de streaming 2. Establece /arch:SSE2.
  • Extensiones vectoriales avanzadas: extensiones vectoriales avanzadas. Establece /arch:AVX.
  • Extensiones vectoriales avanzadas 2: extensiones vectoriales avanzadas 2. Establece /arch:AVX2.
  • Sin instrucciones mejoradas: sin instrucciones mejoradas. Establece /arch:IA32.
  • Sin establecer - Sin establecer.

Habilitar la longitud del vector

Habilite la elección de la longitud del vector para las marcas /arch:AVX512 y los indicadores /arch:AVX10.x. Los valores permitidos son 256 y 512 bits (X86/X64).

Modelo de punto flotante

Establece el modelo de punto flotante. Establece /fp:precise, /fp:strict y /fp:fast.

Opciones

  • Preciso: valor predeterminado. Mejora la coherencia de las pruebas de punto flotante de igualdad y desigualdad.
  • Estricto: modelo de punto flotante más estricto. /fp:strict hace que fp_contract se desactive y que fenv_access se active. /fp:except está implícito y se puede deshabilitar explícitamente si se especifica /fp:except-. Cuando se usa con /fp:except-, /fp:strict fuerza la semántica de punto flotante estricta, pero sin considerar eventos excepcionales.
  • Rápido: crea el código más rápido en la mayoría de los casos.

Habilitar excepciones de punto flotante

Modelo confiable de excepción de punto flotante. Las excepciones se generarán inmediatamente después de que se activen. Establece /fp:except.

Crear una imagen aplicable en caliente

Cuando el hotpatching está activado, el compilador garantiza que la primera instrucción de cada función sea de dos bytes, tal como se requiere para aplicar parches en caliente. Establece /hotpatch.

Mitigación de Spectre

Mitigaciones de Spectre para CVE 2017-5753. Establece /Qspectre.

Opciones

  • Habilitado: se habilita la característica de mitigación de Spectre para CVE 2017-5753.
  • Deshabilitado : no se establece.

Habilitar la mitigación del error Intel JCC

Mitigación de software para el impacto sobre el rendimiento causado por la actualización del microcódigo de Intel JCC erratum. Establece /QIntel-jcc-erratum.

Habilitar metadatos de continuación de EH

Genera una lista ordenada de todos los destinos de continuación válidos para el manejo de excepciones de un binario, utilizados durante la ejecución en tiempo real para la validación de RIP. Actualmente está disponible para compilaciones x64. Establece /guard:ehcont.

Habilitar devoluciones firmadas

Habilita las devoluciones firmadas que ayudan a detectar e impedir que se envíen a bloques no válidos de la función. Actualmente disponible para compilaciones ARM64. Establece /guard:signret.

Propiedades del lenguaje C/C++

Deshabilitar extensiones de lenguaje

Suprime o habilita extensiones de lenguaje. Establece /Za.

Tratar WChar_t como tipo integrado

Cuando se especifica, el tipo wchar_t se convierte en un tipo nativo asignado a __wchar_t de la misma manera que short se asigna a __int16. /Zc:wchar_t está activado de forma predeterminada.

Forzar el cumplimiento en el ámbito del bucle For

Implementa el comportamiento estándar de C++ para los bucles de instrucciones for con extensiones de Microsoft. Establece /Za y /Ze (Deshabilitar extensiones de lenguaje. /Zc:forScope está activado de forma predeterminada.

Eliminar código y datos sin referencia

Cuando se especifica, el compilador ya no genera información de símbolos para el código y los datos sin referencia.

Exigir reglas de conversión de tipos

Se usa para identificar un tipo de referencia rvalue como resultado de una operación de conversión según el estándar de C++11.

Habilitar información de tipo en tiempo de ejecución

Agrega código para comprobar los tipos de objetos de C++ en tiempo de ejecución (información de tipo en tiempo de ejecución o RTTI). Establece /GR y /GR-.

Compatibilidad con OpenMP

Habilita extensiones de lenguaje de OpenMP 2.0. Establece /openmp.

Estándar de lenguaje C++

Determina el estándar del lenguaje C++ que habilita el compilador. El valor predeterminado no establece ninguna opción estándar, por lo que el compilador usa su configuración predeterminada de C++14. Si selecciona un valor específico, la opción del compilador correspondiente /std es set.md).

Opciones

  • Predeterminado (Estándar ISO C++14)
  • Estándar ISO C++14 (/std:c++14)
  • Estándar ISO C++17 (/std:c++17)
  • Estándar ISO C++20 (/std:c++20)
  • Versión preliminar: estándar ISO C++23 (/std:c++23preview)
  • Versión preliminar: características del último borrador de trabajo de C++ (/std:c++latest)

Estándar de lenguaje C

Determina el estándar del lenguaje C que habilita el compilador. El valor predeterminado no establece una opción estándar, por lo que el compilador usa su configuración de MSVC heredada predeterminada. Si selecciona un valor específico, la opción del compilador correspondiente /std es set.md).

Opciones

  • Predeterminado (Microsoft Visual C++ heredado)
  • Norma ISO C11 (/std:c11)
  • ISO C17 (2018) Estándar (/std:c17)
  • Versión preliminar: características del borrador de trabajo de C más reciente (/std:clatest)

Modo de conformidad

Habilita o suprime el modo de conformidad. Establece /permissive-.

Habilitación de módulos experimentales de biblioteca estándar de C++

Compatibilidad experimental con los módulos TS de C++ y los módulos de la biblioteca estándar.

Construir módulos de la biblioteca estándar ISO C++23

A partir de Visual Studio 17.6, cuando esta propiedad está habilitada y C++ Language Standard se establece en /std:c++latest, los proyectos de Microsoft C++ buscan y compilan automáticamente los módulos de la biblioteca estándar ISO C++23. Esto le permite import std o import std.compat en su código C++.

Propiedades de encabezados precompilados de C/C++

Creación o uso de encabezados precompilados

Habilita la creación o el uso de un encabezado precompilado durante la compilación. Establece /Yc y /Yu.

Opciones

  • Crear: indica al compilador que cree un archivo de encabezado precompilado (.pch) que represente el estado de la compilación en un momento determinado.
  • Usar: indica al compilador que use un archivo de encabezado precompilado (.pch) existente en la compilación actual.
  • No usar encabezados precompilados: no se usa ningún encabezado precompilado.

Archivo de encabezado precompilado

Especifica el nombre del archivo de encabezado que se va a usar al crear o usar un archivo de encabezado precompilado. Establece /Yc y /Yu.

Archivo de salida de encabezados precompilados

Especifica la ruta de acceso o el nombre del archivo de encabezado precompilado que se ha generado. Establece /Fp.

Propiedades de archivos de salida de C/C++

Expandir fuente atribuida

Cree un archivo de lista con los atributos expandidos insertados en el archivo de código fuente. Establece /Fx.

Resultados de ensamblado

Especifica el contenido del archivo de salida del lenguaje de ensamblado. Establece /FA, /FAc, /FAs y /FAcs.

Opciones

  • Sin lista: sin lista.
  • Lista solo de ensamblados: código de ensamblado; .asm.
  • Ensambla con código de máquina - Código de máquina y código ensamblador; .cod.
  • Ensamblado con código fuente: código fuente y de ensamblado; .asm.
  • Ensamblado, código de máquina y fuente: código de ensamblado, máquina y fuente; .cod.

Usar Unicode para lista de ensambladores

Hace que el archivo de salida se cree en formato UTF-8.

Ubicación de la lista ASM

Especifica la ruta de acceso relativa o el nombre del archivo de lista de ASM; puede ser un nombre de archivo o directorio. Establece /Fa.

Nombre del archivo de salida del módulo

Ubicación del archivo de salida del módulo o unidad de encabezado (BMI); puede ser el nombre de un archivo o directorio. Establece /ifcOutput[name].

Nombre del archivo de dependencias del módulo

Especifica la ruta de acceso o el nombre del archivo de dependencias del módulo generado. Establece /scanDependencies[path].

Nombre de archivo objeto

Especifica un nombre para reemplazar el nombre del archivo objeto predeterminado. Puede ser un nombre de archivo o de directorio. Establece /Fo.

Nombre del archivo de base de datos del programa

Especifica un nombre para un archivo PDB generado por el compilador; especifica también el nombre base del archivo IDB generado por el compilador necesario; puede ser un nombre de archivo o directorio. Establece /Fd.

Generar archivos de documentación XML

Especifica que el compilador debe generar archivos de comentarios de documentación XML (.XDC). Establece /doc.

Nombre del archivo de documentación XML

Especifica el nombre de los archivos de documentación XML generados; puede ser un nombre de archivo o directorio. Establece /doc:<nombre>.

Generar archivo de dependencias de origen

Genera un archivo JSON con la lista de todos los archivos que el compilador usó para la compilación del origen. Establece /sourceDependencies.

Nombre del archivo de dependencias de origen

Especifica la ruta de acceso o el nombre del archivo de dependencias de origen generado. Establece /sourceDependencies[path].

Propiedades de navegación de información de C/C++

Habilitar información de navegación

Especifica el nivel de información de exploración en el archivo .bsc. Establece /FR.

Archivo de información para explorar

Especifica el nombre opcional para el archivo de información del navegador. Establece /FR<nombre>.

Propiedades de inclusiones externas de C/C++

Tratar como externos los archivos incluidos en corchetes angulares

Especifica si los archivos incluidos entre corchetes angulares deben tratarse como externos. Establezca esta propiedad en para establecer la opción del compilador /external:anglebrackets.

Nivel de advertencia de encabezados externos

Permite seleccionar cómo será de estricto el compilador en cuanto a los errores de código en encabezados externos. Esta propiedad establece la opción del compilador /external:Wn. Si este valor se establece en Heredar nivel de advertencia del proyecto o el valor predeterminado, se omiten otras opciones /external.

Diagnóstico de plantillas en encabezados externos

Especifica si debe evaluarse el nivel de advertencia en la cadena de instanciación de plantillas. Establezca esta propiedad en para establecer la opción del compilador /external:templates-.

Deshabilitar el análisis de código para encabezados externos

Deshabilita el análisis de código para encabezados externos. Establece la opción del compilador /analyze:external-.

Conjunto de reglas de análisis para encabezados externos

Especifica una anulación del conjunto de reglas de análisis de código para los encabezados externos. Si no se especifica, se usa la configuración de Code Analysis. Establece la opción del compilador /analyze:external:ruleset path.

Propiedades avanzadas de C/C++

Convención de llamada

Seleccione la convención de llamada predeterminada para la aplicación (la función puede invalidarla). Establece /Gd, /Gr, /Gz y /Gv.

Opciones

  • __cdecl: especifica la convención de llamada __cdecl para todas las funciones, excepto las funciones miembro de C++ y las que se marcan como __stdcall o __fastcall.
  • __fastcall: especifica la convención de llamada __fastcall para todas las funciones, excepto las funciones miembro de C++ y las que se marcan como __cdecl o __stdcall. Todas las funciones __fastcall deben tener prototipos.
  • __stdcall: especifica la convención de llamada __stdcall para todas las funciones, excepto las funciones miembro de C++ y las que se marcan como __cdecl o __fastcall. Todas las funciones __stdcall deben tener prototipos.
  • __vectorcall: especifica la convención de llamada __vectorcall para todas las funciones, excepto las funciones miembro de C++ y las que se marcan como __cdecl, __fastcall o __stdcall. Todas las funciones __vectorcall deben tener prototipos.

Compilar como

Seleccione la opción de lenguaje de compilación para los archivos de origen. Establece /TC, /TP, /interface, /internalPartition o /exportHeader.

Opciones

  • Predeterminado: opción predeterminada.
  • Compilar como código C (/TC): compile archivos de código fuente especificados como código C. De forma predeterminada, los archivos con una .c extensión se compilan como C.
  • Compilar como código de C++ (/TP): compile archivos de código fuente especificados como código C++. De forma predeterminada, todos los archivos de origen que no tienen una .cextensión , .ixx, .cppm, .ho ninguna extensión se compilan como C++.
  • Compilar como código de módulo de C++ (/interface): compile archivos de código fuente especificados como código de módulo de C++. De forma predeterminada, los archivos con una .ixx extensión o .cppm se compilan como código de módulo de C++.
  • Compilar como partición interna del módulo de C++ (/internalPartition): compile archivos de origen especificados como partición interna del módulo de C++.
  • Compilar como unidad de encabezado de C++ (/exportHeader): compile archivos de origen especificados como unidad de encabezado de C++. De forma predeterminada, los archivos con una .h extensión o ninguna extensión se compilan como unidades de encabezado.

Deshabilitar advertencias específicas

Deshabilita los números de advertencias específicas. Coloque los números de advertencias en una lista delimitada por puntos y coma. Establece /wd<número>.

Archivo de inclusión forzada

Uno o más archivos de inclusión forzada. Establece /FI<nombre>.

Uso obligatorio del archivo

Especifica uno o varios archivos #using obligatorios. Establece /FU<nombre>.

Mostrar inclusiones

Genera una lista de archivos de inclusión con los resultados del compilador. Establece /showIncludes.

Usar rutas de acceso completas

Use rutas de acceso completas en los mensajes de diagnóstico. Establece /FC.

Omitir nombre de biblioteca por defecto

No incluye nombres de biblioteca predeterminados en archivos .obj. Establece /Zl.

Informe de errores internos del compilador

Nota:

Esta opción está en desuso. A partir de Windows Vista, los informes de errores se controlan mediante la configuración de Informe de errores de Windows (WER).

Tratar advertencias específicas como errores

Trata las advertencias específicas del compilador como errores en los que n es una advertencia del compilador.

Opciones adicionales

Opciones adicionales