/cpp _ cmd-Schalter
Der Schalter /cpp _ cmd gibt den Präprozessor an, den der MIDL-Compiler zum Vorverarbeiten von Eingabedateien verwendet.
midl /cpp_cmd "C_preprocessor_binary"
Optionen wechseln
-
_ _ C-Präprozessorbinärdatei
-
Gibt den Befehl an, der den Präprozessor aufruft. Mit diesem Befehl können Entwickler den Standardpräprozessor überschreiben. Standardmäßig ruft MIDL den Microsoft C/C++-Compiler aus der Buildumgebung des Buildcomputers auf.
Bemerkungen
Das _ _ binäre C-Präprozessorargument für den Schalter kann den vollständigen Pfad angeben. Das Exe-Suffix und die Anführungszeichen sind optional. In der Regel verwenden Entwickler den Schalter, um eine bestimmte Version des Microsoft C/C++-Präprozessors oder eine entsprechende Version in der Buildumgebung auszuwählen. In diesem Fall ist es nicht erforderlich, den Schalter /cpp _ opt mit /cpp _ cmd zu verwenden.
Bei Verwendung eines Nicht-Microsoft-Präprozessors, insbesondere wenn der angegebene Präprozessor seine Ausgabe nicht an stdout weiterleitet, muss der C-Compilerschalter angegeben werden, der die Ausgabe als Teil des MIDL-Compilerschalters /cpp _ opt an stdout umleitet. Weitere Informationen finden Sie unter C-Preprocessor Requirements for MIDL (C-Präprozessoranforderungen für MIDL).
Der Präprozessor wird von einer Befehlszeichenfolge aufgerufen, die aus den Informationen gebildet wird, die dem MIDL-Compiler durch die Schalter /cpp _ cmd, /cpp _ opt, /D, /Iund /U bereitgestellt werden. In der folgenden Tabelle wird zusammengefasst, wie die Befehlszeichenfolge für jede Kombination der Schalter /cpp _ cmd und /cpp _ opt erstellt wird.
Wenn der Schalter /cpp _ cmd nicht angegeben ist, ruft der MIDL-Compiler den Microsoft C/C++-Compiler auf. MIDL verwendet eine Cl.exe Binärdatei aus der Buildumgebung.
Wenn der Schalter /cpp _ opt nicht vorhanden ist, verkettet der MIDL-Compiler die durch den Schalter /cpp _ cmd angegebene Zeichenfolge mit den Informationen, die von den Midl-Optionen /I, /D und /U angegeben werden. Die Zeichenfolge /E wird auch mit der C-Compileraufrufzeichenfolge verkettet, um anzugeben, dass der C/C++-Compiler nur die Vorverarbeitung ausführen soll. Der Schalter /nologo wird hinzugefügt, um das C/C++-Compilerbanner zu unterdrücken. Der MIDL-Compiler verwendet die verkettete Zeichenfolge, um den C-Präprozessor für IDL-Dateien der obersten Ebene sowie importierte IDL-Dateien sowie für alle vorhandenen, entsprechenden ACF-Dateien aufzurufen.
Wenn der Schalter /cpp _ opt vorhanden ist, was bei den aktuellen 32-Bit- und 64-Bit-Plattformen ein seltener Fall sein sollte, verkettet der MIDL-Compiler die durch den Schalter /cpp _ cmd angegebene Zeichenfolge mit der Zeichenfolge, die durch den Schalter /cpp _ opt angegeben wird. Der MIDL-Compiler verwendet die verkettete Zeichenfolge, um die angegebene Präprozessorbinärdatei anstelle des Standardpräprozessors aufzurufen. Wenn der Schalter /cpp _ opt vorhanden ist, werden weder die MIDL-Compileroptionen, die von den Schaltern /I, /Dund /U angegeben werden, noch der C-Compilerschalter /E mit der Zeichenfolge verkettet. Sie müssen die Option /E oder eine entsprechende Option als Teil der Zeichenfolge bereitstellen.
| /cpp _ cmd present? | /cpp _ opt present? | BESCHREIBUNG |
|---|---|---|
| Nein (Standard) | Nein (Standard) | Ruft den Microsoft C/C++-Standardcompiler mit Einstellungen auf, die von den MIDL-Schaltern /I, /D und /U abgerufen werden. Fügt die Präprozessorschalter /E und /nologohinzu. |
| Ja | Nein | Ruft die angegebene Präprozessorbinärdatei mit den gleichen Schaltern wie oben auf. |
| Nein | Ja | Ruft den Microsoft C-Compiler mit angegebenen Optionen auf. Es werden keine MIDL-Optionen /I, /D, /U verwendet. Sie müssen /E als Teil von /cpp _ optbereitstellen. |
| Ja | Ja | Ruft die angegebene Präprozessorbinärdatei nur mit angegebenen Optionen auf. Sie müssen Anführungszeichen verwenden. |
Beispiele
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