Поделиться через


Параметр /cpp_cmd

Параметр /cpp_cmd указывает препроцессор, используемый компилятором MIDL для предварительной обработки входных файлов.

midl /cpp_cmd "C_preprocessor_binary"

Параметры переключения

C_preprocessor_binary

Указывает команду, которая вызывает препроцессор. Эта команда позволяет разработчикам переопределить препроцессор по умолчанию. По умолчанию MIDL вызывает компилятор Microsoft C/C++ из среды сборки компьютера сборки.

Комментарии

Аргумент C_preprocessor_binary для параметра может указывать полный путь; Суффикс exe и кавычки являются необязательными. Как правило, разработчики используют параметр для выбора конкретной версии препроцессора Microsoft C/C++ или эквивалента в среде сборки. В этом случае нет необходимости использовать параметр /cpp_opt с параметром /cpp_cmd.

При использовании препроцессора, не являющегося корпорацией Майкрософт, особенно если указанный препроцессор не направляет свои выходные данные в stdout, необходимо указать параметр компилятора C, который перенаправляет выходные данные в stdout как часть параметра /cpp_opt компилятора MIDL. Дополнительные сведения см. в разделе Требования К препроцессору C для MIDL .

Препроцессор вызывается командной строкой, которая формируется из сведений, предоставляемых компилятору MIDL параметрами /cpp_cmd, /cpp_opt, /D, /I и /U . В следующей таблице показано, как создается командная строка для каждого сочетания параметров /cpp_cmd и /cpp_opt .

Если параметр /cpp_cmd не указан, компилятор MIDL вызывает компилятор Microsoft C/C++. В MIDL используется двоичный Cl.exe, который находится в среде сборки.

Если параметр /cpp_opt отсутствует, компилятор MIDL объединяет строку, указанную параметром /cpp_cmd , со сведениями, указанными в параметрах MIDL /I, /D и /U . Строка /E также объединяется со строкой вызова компилятора C, чтобы указать, что компилятор C/C++ должен выполнять только предварительную обработку. Параметр /nologo добавляется для подавления баннера компилятора C/C++. Компилятор MIDL использует объединенную строку для вызова препроцессора C для IDL верхнего уровня, а также импортированных IDL-файлов, а также для любых имеющихся соответствующих файлов ACF.

При наличии параметра /cpp_opt , что является редким случаем для текущих 32-разрядных и 64-разрядных платформ, компилятор MIDL объединяет строку, указанную параметром /cpp_cmd , со строкой, указанной параметром /cpp_opt . Компилятор MIDL использует объединенную строку для вызова указанного двоичного файла препроцессора вместо препроцессора по умолчанию. При наличии параметра /cpp_opt ни параметры компилятора MIDL, заданные параметрами /I, /D и /U , ни параметр компилятора C /E не объединяются со строкой. В качестве части строки необходимо указать параметр /E или его эквивалент.

/cpp_cmd присутствует? /cpp_opt присутствует? Описание
Нет (по умолчанию) Нет (по умолчанию) Вызывает компилятор Microsoft C/C++ по умолчанию с параметрами, полученными из параметров MIDL /I, /D и /U . Добавляет параметры препроцессора /E и /nologo.
Да Нет Вызывает указанный двоичный файл препроцессора с теми же параметрами, что и выше.
Нет Да Вызывает компилятор Microsoft C с указанными параметрами. Не использует параметры MIDL /I, /D, /U . Необходимо указать параметр /E в составе /cpp_opt.
Да Да Вызывает указанный двоичный файл препроцессора только с указанными параметрами. Необходимо использовать кавычки.

 

Примеры

midl /cpp_cmd d:\nt\tools\ia64\cl.exe /DFLAG=TRUE /Ic:\inc имя_файла.idl

midl /cpp_cmd "mycpp" /DFLAG=TRUE /Ic:\inc имя_файла.idl

midl /cpp_opt "/E /DFLAG=TRUE /Ic:\inc" имя_файла.idl

midl /cpp_cmd "cl" /cpp_opt "/E /DFLAG=TRUE /Ic:\inc" имя_файла.idl

См. также раздел

/savePP

/cpp_opt

Общий синтаксис командной строки MIDL

/no_cpp

Требования к препроцессору C для MIDL