Commutateur /cpp_cmd
Le commutateur /cpp_cmd spécifie le préprocesseur que le compilateur MIDL utilise pour prétraiter les fichiers d’entrée.
midl /cpp_cmd "C_preprocessor_binary"
Options de basculement
-
C_preprocessor_binary
-
Spécifie la commande qui appelle le préprocesseur. Cette commande permet aux développeurs de remplacer le préprocesseur par défaut. Par défaut, MIDL appelle le compilateur Microsoft C/C++ à partir de l’environnement de génération de la machine de génération.
Notes
L’argument C_preprocessor_binary au commutateur peut spécifier le chemin d’accès complet ; le suffixe exe et les guillemets sont facultatifs. En règle générale, les développeurs utilisent le commutateur pour choisir une version particulière du préprocesseur Microsoft C/C++ ou une version équivalente dans l’environnement de build. Dans ce cas, il n’est pas nécessaire d’utiliser le commutateur /cpp_opt avec /cpp_cmd.
Lors de l’utilisation d’un préprocesseur non-Microsoft, en particulier lorsque le préprocesseur spécifié ne dirige pas sa sortie vers stdout, le commutateur du compilateur C qui redirige la sortie vers stdout dans le cadre du commutateur / cpp_opt du compilateur MIDL doit être spécifié. Pour plus d’informations, consultez C-Preprocessor Requirements for MIDL
Le préprocesseur est appelé par une chaîne de commande formée à partir des informations fournies au compilateur MIDL par les commutateurs /cpp_cmd, /cpp_opt, /D, /I et /U . Le tableau suivant résume la façon dont la chaîne de commande est construite pour chaque combinaison de commutateurs /cpp_cmd et /cpp_opt .
Lorsque le commutateur /cpp_cmd n’est pas spécifié, le compilateur MIDL appelle le compilateur Microsoft C/C++. MIDL utilise un binaire Cl.exe trouvé dans l’environnement de build.
Lorsque le commutateur /cpp_opt n’est pas présent, le compilateur MIDL concatène la chaîne spécifiée par le commutateur /cpp_cmd avec les informations spécifiées par les options MIDL /I, /D et /U . La chaîne /E est également concaténée avec la chaîne d’appel du compilateur C pour indiquer que le compilateur C/C++ doit effectuer le prétraitement uniquement. Le commutateur /nologo est ajouté pour supprimer la bannière du compilateur C/C++. Le compilateur MIDL utilise la chaîne concaténée pour appeler le préprocesseur C pour l’IDL de niveau supérieur, ainsi que pour les fichiers IDL importés, ainsi que pour tous les fichiers ACF correspondants présents.
Lorsque le commutateur /cpp_opt est présent, ce qui doit être un cas rare pour les plateformes 32 bits et 64 bits actuelles, le compilateur MIDL concatène la chaîne spécifiée par le commutateur /cpp_cmd avec la chaîne spécifiée par le commutateur /cpp_opt . Le compilateur MIDL utilise la chaîne concaténée pour appeler le fichier binaire de préprocesseur indiqué à la place du préprocesseur par défaut. Lorsque le commutateur /cpp_opt est présent, ni les options du compilateur MIDL spécifiées par les commutateurs /I, /D et /U , ni le commutateur du compilateur C /E ne sont concaténées avec la chaîne. Vous devez fournir l’option /E, ou l’option équivalente, dans le cadre de la chaîne.
/cpp_cmd présent ? | /cpp_opt présent? | Description |
---|---|---|
Non (par défaut) | Non (par défaut) | Appelle le compilateur Microsoft C/C++ par défaut avec les paramètres obtenus à partir des commutateurs MIDL /I, /D et /U . Ajoute les commutateurs de préprocesseur /E et /nologo. |
Oui | Non | Appelle le fichier binaire de préprocesseur indiqué avec les mêmes commutateurs que ci-dessus. |
Non | Oui | Appelle le compilateur Microsoft C avec les options spécifiées. N’utilise pas les options MIDL /I, /D, /U . Vous devez fournir /E dans le cadre de /cpp_opt. |
Oui | Oui | Appelle le fichier binaire de préprocesseur spécifié avec les options spécifiées uniquement. Vous devez utiliser des guillemets. |
Exemples
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
Voir aussi