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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour