Share via


Modificador /cpp_cmd

El modificador /cpp_cmd especifica el preprocesador que el compilador MIDL usa para preprocesar archivos de entrada.

midl /cpp_cmd "C_preprocessor_binary"

Opciones de modificador

C_preprocessor_binary

Especifica el comando que invoca el preprocesador. Este comando permite a los desarrolladores invalidar el preprocesador predeterminado. De forma predeterminada, MIDL invoca el compilador de Microsoft C/C++ desde el entorno de compilación de la máquina de compilación.

Observaciones

El argumento C_preprocessor_binary al modificador puede especificar la ruta de acceso completa; El sufijo exe y las comillas son opcionales. Normalmente, los desarrolladores usan el modificador para elegir una versión determinada del preprocesador de Microsoft C/C++ o equivalente en el entorno de compilación. En este caso, no es necesario usar el modificador /cpp_opt con /cpp_cmd.

Cuando se usa un preprocesador que no es de Microsoft, especialmente cuando el preprocesador especificado no dirige su salida a stdout, se debe especificar el modificador del compilador de C que redirige la salida a stdout como parte del modificador del compilador MIDL /cpp_opt . Consulte C-Preprocessor Requirements for MIDL (Requisitos del preprocesador de C para MIDL ) para obtener más información.

El preprocesador se invoca mediante una cadena de comando formada a partir de la información proporcionada al compilador MIDL por /cpp_cmd, /cpp_opt, /D, /I y /U modificadores. En la tabla siguiente se resume cómo se construye la cadena de comando para cada combinación de modificadores /cpp_cmd y /cpp_opt .

Cuando no se especifica el modificador /cpp_cmd , el compilador MIDL invoca al compilador de Microsoft C/C++. MIDL usa un archivo binario Cl.exe que se encuentra en el entorno de compilación.

Cuando el modificador /cpp_opt no está presente, el compilador MIDL concatena la cadena especificada por el modificador /cpp_cmd con la información especificada por las opciones MIDL /I, /D y /U . La cadena /E también se concatena en la cadena de invocación del compilador de C para indicar que el compilador de C/C++ solo debe realizar el preprocesamiento. El modificador /nologo se agrega para suprimir el banner del compilador de C/C++. El compilador MIDL usa la cadena concatenada para invocar el preprocesador de C para idL de nivel superior, así como archivos IDL importados, y también para cualquier archivo ACF actual.

Cuando el modificador /cpp_opt está presente, que debe ser un caso poco frecuente para las plataformas actuales de 32 y 64 bits, el compilador MIDL concatena la cadena especificada por el modificador /cpp_cmd con la cadena especificada por el modificador /cpp_opt . El compilador MIDL usa la cadena concatenada para invocar el binario del preprocesador indicado en lugar del preprocesador predeterminado. Cuando el modificador /cpp_opt está presente, ni las opciones del compilador MIDL especificadas por los modificadores /I, /D y /U ni el modificador del compilador de C /E se concatenan con la cadena. Debe proporcionar la opción /E, o equivalente, como parte de la cadena.

/cpp_cmd presente? /cpp_opt presente? Descripción
No (valor predeterminado) No (valor predeterminado) Invoca el compilador predeterminado de Microsoft C/C++ con la configuración obtenida de los modificadores MIDL /I, /D y /U . Agrega los modificadores de preprocesador /E y /nologo.
No Invoca el binario del preprocesador indicado con los mismos modificadores que anteriormente.
No Invoca el compilador de Microsoft C con las opciones especificadas. No usa las opciones MIDL /I, /D, /U . Debe proporcionar /E como parte de /cpp_opt.
Invoca el binario del preprocesador especificado solo con opciones especificadas. Debe usar comillas.

 

Ejemplos

midl /cpp_cmd d:\nt\tools\ia64\cl.exe /DFLAG=TRUE /Ic:\inc filename.idl

midl /cpp_cmd "mycpp" /DFLAG=TRUE /Ic:\inc filename.idl

midl /cpp_opt "/E /DFLAG=TRUE /Ic:\inc" filename.idl

midl /cpp_cmd "cl" /cpp_opt "/E /DFLAG=TRUE /Ic:\inc" filename.idl

Consulte también

/savePP

/cpp_opt

Sintaxis general de la línea de comandos de MIDL

/no_cpp

Requisitos del preprocesador de C para MIDL