Bagikan melalui


/cpp_cmd switch

Sakelar /cpp_cmd menentukan pra-prosesor yang digunakan pengkompilasi MIDL untuk memproses file input sebelumnya.

midl /cpp_cmd "C_preprocessor_binary"

Opsi Sakelar

C_preprocessor_binary

Menentukan perintah yang memanggil pra-prosesor. Perintah ini memungkinkan pengembang untuk mengambil alih prapemrosedur default. Secara default, MIDL memanggil pengkompilasi Microsoft C/C++ dari lingkungan build komputer build.

Keterangan

Argumen C_preprocessor_binary ke sakelar dapat menentukan jalur lengkap; akhiran exe dan tanda kutip bersifat opsional. Biasanya, pengembang menggunakan sakelar untuk memilih versi tertentu dari pra-prosesor Microsoft C/C++ atau yang setara di lingkungan build. Dalam hal ini, tidak perlu menggunakan sakelar /cpp_opt dengan /cpp_cmd.

Saat menggunakan praproscessor non-Microsoft, terutama ketika preprocessor yang ditentukan tidak mengarahkan outputnya ke stdout, sakelar pengkompilasi C yang mengalihkan output ke stdout sebagai bagian dari sakelar kompilator /cpp_opt MIDL harus ditentukan. Lihat Persyaratan C-Preprocessor untuk MIDL untuk detailnya

Praprosesor dipanggil oleh string perintah yang dibentuk dari informasi yang diberikan kepada pengkompilasi MIDL oleh /cpp_cmd, /cpp_opt, /D, /I, dan sakelar /U . Tabel berikut ini meringkas bagaimana string perintah dibangun untuk setiap kombinasi /cpp_cmd dan /cpp_opt beralih.

Ketika sakelar /cpp_cmd tidak ditentukan, pengkompilasi MIDL memanggil pengkompilasi Microsoft C/C++. MIDL menggunakan biner Cl.exe yang ditemukan di lingkungan build.

Ketika sakelar /cpp_opt tidak ada, kompilator MIDL menggabungkan string yang ditentukan oleh sakelar /cpp_cmd dengan informasi yang ditentukan oleh opsi MIDL /I, /D dan /U . String /E juga digabungkan ke string pemanggilan C-compiler untuk menunjukkan bahwa kompilator C/C++ harus melakukan praproscessing saja. Sakelar /nologo ditambahkan untuk menekan banner pengompilasi C/C++. Pengkompilasi MIDL menggunakan string yang digabungkan untuk memanggil praprosesor C untuk IDL tingkat atas serta file IDL yang diimpor, dan juga untuk file ACF yang ada dan sesuai.

Ketika sakelar /cpp_opt ada, yang seharusnya merupakan kasus langka untuk platform 32-bit dan 64-bit saat ini, kompilator MIDL menggabungkan string yang ditentukan oleh sakelar /cpp_cmd dengan string yang ditentukan oleh sakelar /cpp_opt . Pengkompilasi MIDL menggunakan string yang digabungkan untuk memanggil biner praproscessor yang ditunjukkan sebagai pengganti prapemrosuaian default. Ketika sakelar /cpp_opt ada, opsi pengkompilasi MIDL yang ditentukan oleh sakelar /I, /D, dan /U atau sakelar pengkompilasi C /E tidak digabungkan dengan string. Anda harus menyediakan opsi /E, atau yang setara, sebagai bagian dari string.

/cpp_cmd hadir? /cpp_opt hadir? Deskripsi
Tidak (default) Tidak (default) Memanggil pengkompilasi Microsoft C/C++ default dengan pengaturan yang diperoleh dari sakelar MIDL /I, /D dan /U . Menambahkan sakelar praprosesor /E dan /nologo.
Ya Tidak Memanggil biner praprosesor yang ditunjukkan dengan sakelar yang sama seperti di atas.
Tidak Ya Memanggil pengkompilasi Microsoft C dengan opsi yang ditentukan. Tidak menggunakan opsi MIDL /I, /D, /U . Anda harus menyediakan /E sebagai bagian dari /cpp_opt.
Ya Ya Memanggil biner pra-prosesor yang ditentukan hanya dengan opsi yang ditentukan. Anda harus menggunakan tanda kutip.

 

Contoh

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

Lihat juga

/savePP

/cpp_opt

Sintaks Baris Perintah MIDL Umum

/no_cpp

Persyaratan C-Preprocessor untuk MIDL