Bagikan melalui


Opsi pengompilasi dicantumkan berdasarkan kategori

Artikel ini berisi daftar kategoris opsi pengkompilasi. Untuk daftar alfabet, lihat Opsi pengkompilasi yang tercantum menurut abjad.

Pengoptimalan

Opsi Tujuan
/favor:<blend|AMD64|INTEL64|ATOM> Menghasilkan kode yang dioptimalkan untuk arsitektur tertentu, atau untuk berbagai arsitektur.
/O1 Membuat kode kecil.
/O2 Membuat kode cepat.
/Ob<n> Mengontrol ekspansi sebaris.
/Od Menonaktifkan pengoptimalan.
/Og Ditolak. Menggunakan pengoptimalan global.
/Oi[-] Menghasilkan fungsi intrinsik.
/Os Mendukung kode kecil.
/Ot Mendukung kode cepat.
/Ox Subset /O2 yang tidak menyertakan /GF atau /Gy.
/Oy Menghilangkan penunjuk bingkai. (hanya x86)

Pembuatan kode

Opsi Tujuan
/arch Persyaratan arsitektur CPU minimum.
/clr Menghasilkan file output untuk dijalankan pada runtime bahasa umum.
/clr:implicitKeepAlive- Matikan emisi implisit .System::GC::KeepAlive(this)
/clr:initialAppDomain Aktifkan perilaku AppDomain awal Visual C++ 2002.
/clr:netcore Menghasilkan rakitan yang menargetkan runtime .NET Core.
/clr:noAssembly Jangan menghasilkan assembly.
/clr:nostdimport Jangan impor rakitan yang diperlukan secara implisit.
/clr:nostdlib Abaikan direktori .NET framework sistem saat mencari rakitan.
/clr:pure Menghasilkan file output il-only (tidak ada kode native executable).
/clr:safe Menghasilkan file output il-only yang dapat diverifikasi.
/EHa Aktifkan penanganan pengecualian C++ (dengan pengecualian SEH).
/EHc extern "C" defaultnya adalah nothrow.
/EHr Selalu hasilkan noexcept pemeriksaan penghentian runtime.
/EHs Aktifkan penanganan pengecualian C++ (tidak ada pengecualian SEH).
/feature Aktifkan fitur arsitektur.17.10
/fp:contract Pertimbangkan kontraksi floating-point saat menghasilkan kode.
/fp:except[-] Pertimbangkan pengecualian floating-point saat membuat kode.
/fp:fast model floating-point "cepat"; hasilnya kurang dapat diprediksi.
/fp:precise model floating-point "presis" ; hasilnya dapat diprediksi.
/fp:strict Model floating-point "ketat" (menyiratkan /fp:except).
/fpcvt:BC Titik mengambang yang kompatibel mundur ke konversi bilangan bulat yang tidak ditandatangani.
/fpcvt:IA Floating-point asli Intel ke perilaku konversi bilangan bulat yang tidak ditandatangani.
/fsanitize Memungkinkan kompilasi instrumentasi sanitizer seperti AddressSanitizer.
/fsanitize-coverage Memungkinkan kompilasi instrumentasi cakupan kode untuk pustaka seperti LibFuzzer.
/GA Mengoptimalkan untuk aplikasi Windows.
/Gd __cdecl Menggunakan konvensi panggilan. (hanya x86)
/Ge Ditolak. Mengaktifkan pemeriksaan tumpukan.
/GF Mengaktifkan pengumpulan string.
/Gh Memanggil fungsi _penterhook .
/GH Memanggil fungsi _pexithook .
/GL[-] Mengaktifkan pengoptimalan seluruh program.
/Gm[-] Ditolak. Mengaktifkan pembangunan ulang minimal.
/Gr __fastcall Menggunakan konvensi panggilan. (hanya x86)
/GR[-] Mengaktifkan informasi jenis run-time (RTTI).
/GS[-] Memeriksa keamanan buffer.
/Gs[n] Mengontrol pemeriksaan tumpukan.
/GT Mendukung keamanan serat untuk data yang dialokasikan dengan menggunakan penyimpanan lokal utas statis.
/Gu[-] Pastikan fungsi yang berbeda memiliki alamat yang berbeda.
/guard:cf[-] Menambahkan pemeriksaan keamanan pelindung alur kontrol.
/guard:ehcont[-] Mengaktifkan metadata kelanjutan EH.
/Gv __vectorcall Menggunakan konvensi panggilan. (hanya x86 dan x64)
/Gw[-] Memungkinkan pengoptimalan data global seluruh program.
/GX[-] Ditolak. Mengaktifkan penanganan pengecualian sinkron. Gunakan /EH sebagai gantinya.
/Gy[-] Mengaktifkan penautan tingkat fungsi.
/Gz __stdcall Menggunakan konvensi panggilan. (hanya x86)
/GZ Ditolak. Mengaktifkan pemeriksaan cepat. (Sama seperti /RTC1)
/homeparams Memaksa parameter yang diteruskan dalam register untuk ditulis ke lokasi mereka pada tumpukan setelah entri fungsi. Opsi pengkompilasi ini hanya untuk kompilator x64 (kompilasi asli dan silang).
/hotpatch Membuat gambar yang dapat di-hotpatch.
/jumptablerdata Letakkan tabel lompat pernyataan kasus pengalihan di bagian .rdata .
/Qfast_transcendentals Menghasilkan transcendental yang cepat.
/QIfist Ditolak. Menekan panggilan fungsi _ftol pembantu saat konversi dari jenis floating-point ke jenis integral diperlukan. (hanya x86)
/Qimprecise_fwaits fwait Menghapus perintah di dalam try blok.
/QIntel-jcc-erratum Mengurangi dampak performa pembaruan mikrokode erratum Intel JCC.
/Qpar Mengaktifkan paralelisasi otomatis perulangan.
/Qpar-report:n Mengaktifkan tingkat pelaporan untuk paralelisasi otomatis.
/Qsafe_fp_loads Menggunakan instruksi pemindahan bilangan bulat untuk nilai floating-point dan menonaktifkan pengoptimalan beban titik mengambang tertentu.
/Qspectre[-] Aktifkan mitigasi untuk CVE 2017-5753, untuk kelas serangan Spectre.
/Qspectre-load Hasilkan instruksi serialisasi untuk setiap instruksi beban.
/Qspectre-load-cf Hasilkan instruksi serialisasi untuk setiap instruksi alur kontrol yang memuat memori.
/Qvec-report:n Mengaktifkan tingkat pelaporan untuk vektorisasi otomatis.
/RTC1 Aktifkan pemeriksaan runtime cepat (setara dengan /RTCsu).
/RTCc Konversi ke pemeriksaan jenis yang lebih kecil pada run-time.
/RTCs Aktifkan pemeriksaan runtime bingkai tumpukan.
/RTCu Mengaktifkan pemeriksaan penggunaan lokal yang tidak diinisialisasi.
/volatile:iso Semantik peroleh/rilis tidak dijamin pada akses volatil.
/volatile:ms Memperoleh/merilis semantik yang dijamin pada akses volatil.

File output

Opsi Tujuan
/doc Memproses komentar dokumentasi ke file XML.
/FA Mengonfigurasi file daftar rakitan.
/Fa Membuat file daftar rakitan.
/Fd Mengganti nama file database program.
/Fe Mengganti nama file yang dapat dieksekusi.
/Fi Menentukan nama file output yang telah diprossesi sebelumnya.
/Fm Membuat mapfile.
/Fo Membuat file objek.
/Fp Menentukan nama file header yang telah dikommpilasikan sebelumnya.
/FR, /Fr Nama file browser yang dihasilkan .sbr . /Fr tidak digunakan lagi.
/Ft<dir> Lokasi file header yang dihasilkan untuk #import.

Praprosesor

Opsi Tujuan
/AI<dir> Menentukan direktori yang akan dicari untuk menyelesaikan referensi file yang diteruskan ke arahan #using .
/C Mempertahankan komentar selama pra-pemrosesan.
/D<name>{=|#}<text> Menentukan konstanta dan makro.
/E Menyalin output pra-prosesor ke output standar.
/EP Menyalin output pra-prosesor ke output standar.
/FI<file> Praproses file include yang ditentukan.
/FU<file> Memaksa penggunaan nama file, seolah-olah telah diteruskan ke arahan #using .
/Fx Menggabungkan kode yang disuntikkan dengan file sumber.
/I<dir> Mencari direktori untuk menyertakan file.
/P Menulis output pra-prosesor ke file.
/PD Cetak semua definisi makro.
/PH Hasilkan #pragma file_hash saat praproscesing.
/U<name> Menghapus makro yang telah ditentukan sebelumnya.
/u Menghapus semua makro yang telah ditentukan sebelumnya.
/X Mengabaikan standar menyertakan direktori.

Unit/modul header

Opsi Tujuan
/exportHeader Buat file unit header (.ifc) yang ditentukan oleh argumen input.
/headerUnit Tentukan tempat menemukan file unit header (.ifc) untuk header yang ditentukan.
/headerName Buat unit header dari header yang ditentukan.
/ifcOutput Tentukan nama file output atau direktori untuk file bawaan .ifc .
/interface Perlakukan file input sebagai unit antarmuka modul.
/internalPartition Perlakukan file input sebagai unit partisi internal.
/reference Gunakan modul bernama IFC.
/scanDependencies Cantumkan dependensi modul dan unit header dalam formulir JSON Standar C++.
/sourceDependencies Mencantumkan semua dependensi tingkat sumber.
/sourceDependencies:directives Mencantumkan dependensi modul dan unit header.
/translateInclude Perlakukan #include sebagai import.

Bahasa

Opsi Tujuan
/await Aktifkan ekstensi koroutine (fungsi yang dapat diulang).
/await:strict Aktifkan dukungan coroutine C++20 standar dengan versi bahasa yang lebih lama.
/constexpr:backtrace<N> Tampilkan evaluasi N constexpr dalam diagnostik (default: 10).
/constexpr:depth<N> Batas kedalaman rekursi untuk constexpr evaluasi (default: 512).
/constexpr:steps<N> constexpr Hentikan evaluasi setelah langkah-langkah N (default: 100000)
/openmp #pragma omp Mengaktifkan dalam kode sumber.
/openmp:experimental Aktifkan ekstensi bahasa OpenMP 2.0 ditambah pilih ekstensi bahasa OpenMP 3.0+.
/openmp:llvm Ekstensi bahasa OpenMP menggunakan runtime LLVM.
/permissive[-] Atur mode kesuaian standar.
/std:c++14 C++14 standar ISO/IEC 14882:2014 (default).
/std:c++17 C++17 standar ISO/IEC 14882:2017.
/std:c++20 C++20 standar ISO/IEC 14882:2020.
/std:c++latest Draf terbaru fitur pratinjau standar C++.
/std:c11 ISO/IEC standar C11 9899:2011.
/std:c17 ISO/IEC standar C17 9899:2018.
/std:clatest Fitur pratinjau standar draf C terbaru.
/vd{0|1|2} Menekan atau mengaktifkan anggota kelas tersembunyi vtordisp .
/vmb Menggunakan basis terbaik untuk penunjuk ke anggota.
/vmg Menggunakan umumitas penuh untuk penunjuk ke anggota.
/vmm Menyatakan beberapa warisan.
/vms Menyatakan warisan tunggal.
/vmv Menyatakan warisan virtual.
/Z7 Menghasilkan informasi penelusuran kesalahan yang kompatibel dengan C 7.0.
/Za Menonaktifkan beberapa ekstensi bahasa C89 dalam kode C.
/Zc:__cplusplus[-] Aktifkan __cplusplus makro untuk melaporkan standar yang didukung (nonaktif secara default).
/Zc:__STDC__ Aktifkan __STDC__ makro untuk melaporkan standar C didukung (nonaktif secara default).
/Zc:alignedNew[-] Aktifkan Alokasi dinamis C++17 yang terlalu selaras (aktif secara default di C++17).
/Zc:auto[-] Terlaksanakan arti Standar C++ baru untuk auto (aktif secara default).
/Zc:char8_t[-] Aktifkan atau nonaktifkan dukungan literal asli u8 C++20 sebagai const char8_t (nonaktif secara default, kecuali di bawah /std:c++20).
/Zc:enumTypes[-] Aktifkan aturan C++ Standar untuk jenis dasar yang disimpulkan enum (Default nonaktif b y, tidak tersirat oleh /permissive-).
/Zc:externC[-] Menerapkan aturan C++ Standar untuk extern "C" fungsi (tersirat oleh /permissive-).
/Zc:externConstexpr[-] Aktifkan tautan eksternal untuk constexpr variabel (nonaktif secara default).
/Zc:forScope[-] Menerapkan aturan cakupan C++ for Standar (aktif secara default).
/Zc:gotoScope Menerapkan aturan C++ goto Standar sekeliling inisialisasi variabel lokal (tersirat oleh /permissive-).
/Zc:hiddenFriend[-] Menerapkan aturan teman tersembunyi C++ Standar (tersirat oleh /permissive-)
/Zc:implicitNoexcept[-] Aktifkan implisit noexcept pada fungsi yang diperlukan (aktif secara default).
/Zc:inline[-] Hapus fungsi atau data yang tidak direferensikan jika COMDAT atau hanya memiliki tautan internal (nonaktif secara default).
/Zc:lambda[-] Aktifkan prosesor lambda baru untuk pemeriksaan sindikat mode kesesuaian dalam lambda generik.
/Zc:noexceptTypes[-] Menerapkan aturan C++17 noexcept (aktif secara default di C++17 atau yang lebih baru).
/Zc:nrvo[-] Aktifkan salinan opsional dan pindahkan elisi (aktif secara default di bawah /O2, , /permissive-atau yang /std:c++20 lebih baru).
/Zc:preprocessor[-] Gunakan prapemrosepakatan baru (nonaktif secara default, kecuali di C11/C17).
/Zc:referenceBinding[-] Sementara UDT tidak akan mengikat referensi lvalue non-const (nonaktif secara default).
/Zc:rvalueCast[-] Terapkan aturan konversi jenis eksplisit C++ Standar (nonaktif secara default).
/Zc:sizedDealloc[-] Aktifkan fungsi dealokasi berukuran global C++14 (aktif secara default).
/Zc:strictStrings[-] Nonaktifkan string-literal ke char* atau wchar_t* konversi (nonaktif secara default).
/Zc:templateScope[-] Terapkan aturan bayangan parameter templat C++ Standar (nonaktif secara default).
/Zc:ternary[-] Terapkan aturan operator kondisional pada jenis operand (nonaktif secara default).
/Zc:threadSafeInit[-] Aktifkan inisialisasi statis lokal aman utas (aktif secara default).
/Zc:throwingNew[-] Asumsikan operator new melemparkan kegagalan (nonaktif secara default).
/Zc:tlsGuards[-] Hasilkan pemeriksaan runtime untuk inisialisasi variabel TLS (aktif secara default).
/Zc:trigraphs Aktifkan trigraf (usang, nonaktif secara default).
/Zc:twoPhase[-] Gunakan perilaku penguraian templat yang tidak sesuai (sesuai secara default).
/Zc:wchar_t[-] wchar_t adalah jenis asli, bukan typedef (aktif secara default).
/Zc:zeroSizeArrayNew[-] Panggil anggota new/delete untuk array objek ukuran 0 (aktif secara default).
/Ze Ditolak. Mengaktifkan ekstensi bahasa C89.
/Zf Meningkatkan waktu pembuatan PDB dalam build paralel.
/ZH:[MD5|SHA1|SHA_256] Menentukan MD5, SHA-1, atau SHA-256 untuk checksum dalam info debug.
/ZI Menyertakan informasi debug dalam database program yang kompatibel dengan Edit dan Lanjutkan. (hanya x86)
/Zi Menghasilkan informasi penelusuran kesalahan lengkap.
/Zl Menghapus nama pustaka default dari .obj file.
/Zo[-] Hasilkan informasi penelusuran kesalahan yang lebih kaya untuk kode yang dioptimalkan.
/Zp[n] Mengemas anggota struktur.
/Zs Memeriksa sintaks saja.
/ZW Menghasilkan file output untuk dijalankan pada Windows Runtime.

Menghubungkan

Opsi Tujuan
/F Mengatur ukuran tumpukan.
/LD Membuat pustaka tautan dinamis.
/LDd Membuat pustaka tautan dinamis debug.
/link Meneruskan opsi yang ditentukan ke LINK.
/LN Membuat MSIL .netmodule.
/MD Mengkompilasi untuk membuat DLL multithreaded, dengan menggunakan MSVCRT.lib.
/MDd Kompilasi untuk membuat DLL multithread debug, dengan menggunakan MSVCRTD.lib.
/MT Mengkompilasi untuk membuat file multithreaded executable, dengan menggunakan LIBCMT.lib.
/MTd Mengkompilasi untuk membuat file eksekusi multithread debug, dengan menggunakan LIBCMTD.lib.

Lain-lain

Opsi Tujuan
/? Mencantumkan opsi pengkompilasi.
@ Menentukan file respons.
/analyze Mengaktifkan analisis kode.
/bigobj Meningkatkan jumlah bagian yang dapat diatasi dalam file .obj.
/c Mengkompilasi tanpa menautkan.
/cgthreads Menentukan jumlah utas cl.exe yang akan digunakan untuk pengoptimalan dan pembuatan kode.
/errorReport Ditolak. pengaturan Pelaporan Galat Windows (WER) mengontrol pelaporan kesalahan.
/execution-charset Atur set karakter eksekusi.
/fastfail Aktifkan mode gagal cepat.
/FC Menampilkan jalur lengkap file kode sumber yang diteruskan ke cl.exe dalam teks diagnostik.
/FS Memaksa penulisan ke file PDB untuk diserialisasikan melalui MSPDBSRV.EXE.
/H Ditolak. Membatasi panjang nama eksternal (publik).
/HELP Mencantumkan opsi pengkompilasi.
/J Mengubah jenis default char .
/JMC Mendukung penelusuran kesalahan C++ Just My Code asli.
/kernel Compiler dan linker membuat biner yang dapat dijalankan di kernel Windows.
/MP Membangun beberapa file sumber secara bersamaan.
/nologo Menekan tampilan banner masuk.
/presetPadding Nol menginisialisasi padding untuk jenis kelas berbasis tumpukan.
/showIncludes Menampilkan daftar semua berkas yang disertakan selama kompilasi.
/source-charset Atur set karakter sumber.
/Tc Menentukan file sumber C.
/TC Menentukan semua file sumber adalah C.
/Tp Menentukan file sumber C++.
/TP Menentukan semua file sumber adalah C++.
/utf-8 Atur set karakter sumber dan eksekusi ke UTF-8.
/V Ditolak. Mengatur string versi.
/validate-charset Validasi file UTF-8 hanya untuk karakter yang kompatibel.
/volatileMetadata Hasilkan metadata pada akses memori volatil.
/Yc Buat .PCH file.
/Yd Ditolak. Menempatkan informasi penelusuran kesalahan lengkap di semua file objek. Gunakan /Zi sebagai gantinya.
/Yl Menyuntikkan referensi PCH saat membuat pustaka debug.
/Yu Menggunakan file header yang telah dikommpilasikan sebelumnya selama build.
/Y- Mengabaikan semua opsi kompilator header prakompilasi lainnya dalam build saat ini.
/Zm Menentukan batas alokasi memori header yang telah dikompretasi.

Diagnostik

Opsi Tujuan
/diagnostics:caret[-] Format diagnostik: mencetak kolom dan baris sumber yang ditunjukkan.
/diagnostics:classic Gunakan format diagnostik warisan.
/diagnostics Format diagnostik: mencetak informasi kolom.
/external:anglebrackets Perlakukan semua header yang disertakan melalui <> sebagai eksternal.
/external:env:<var> Tentukan variabel lingkungan dengan lokasi header eksternal.
/external:I <path> Tentukan lokasi header eksternal.
/external:templates[-] Evaluasi tingkat peringatan di seluruh rantai instansiasi templat.
/external:W<n> Atur tingkat peringatan untuk header eksternal.
/options:strict Opsi pengkompilasi yang tidak dikenal adalah kesalahan.
/sdl Aktifkan lebih banyak fitur dan peringatan keamanan.
/w Nonaktifkan semua peringatan.
/W0, , /W1/W2, , /W3,/W4 Atur tingkat peringatan output.
/w1<n>, , /w2<n>/w3<n>,/w4<n> Atur tingkat peringatan untuk peringatan yang ditentukan.
/Wall Aktifkan semua peringatan, termasuk peringatan yang dinonaktifkan secara default.
/wd<n> Nonaktifkan peringatan yang ditentukan.
/we<n> Perlakukan peringatan yang ditentukan sebagai kesalahan.
/WL Aktifkan diagnostik satu baris untuk pesan kesalahan dan peringatan saat mengkompilasi kode sumber C++ dari baris perintah.
/wo<n> Tampilkan peringatan yang ditentukan hanya sekali.
/Wv:xx[.yy[.zzzzz]] Nonaktifkan peringatan yang diperkenalkan setelah versi pengompilasi yang ditentukan.
/WX Perlakukan peringatan sebagai kesalahan.

Opsi eksperimental

Opsi eksperimental hanya dapat didukung oleh versi pengkompilasi tertentu. Mereka juga dapat berulah secara berbeda dalam versi kompilator yang berbeda. Seringkali yang terbaik, atau hanya, dokumentasi untuk opsi eksperimental ada di Blog Tim Microsoft C++.

Opsi Tujuan
/experimental:log Mengaktifkan output SARIF terstruktur eksperimental.
/experimental:module Mengaktifkan dukungan modul eksperimental.

Opsi pengkompilasi yang tidak digunakan lagi dan dihapus

Opsi Tujuan
/clr:noAssembly Ditolak. Gunakan /LN (Buat Modul MSIL) sebagai gantinya.
/errorReport Ditolak. Pelaporan kesalahan dikontrol oleh pengaturan Pelaporan Galat Windows (WER).
/experimental:preprocessor Ditolak. Memungkinkan dukungan pra-prosesor yang sesuai eksperimental. Menggunakan /Zc:preprocessor
/Fr Ditolak. Membuat file informasi penelusuran tanpa variabel lokal.
/Ge Ditolak. Mengaktifkan pemeriksaan tumpukan. Aktif secara default.
/Gm Ditolak. Mengaktifkan pembangunan ulang minimal.
/GX Ditolak. Mengaktifkan penanganan pengecualian sinkron. Gunakan /EH sebagai gantinya.
/GZ Ditolak. Mengaktifkan pemeriksaan cepat. Gunakan /RTC1 sebagai gantinya.
/H Ditolak. Membatasi panjang nama eksternal (publik).
/Og Ditolak. Menggunakan pengoptimalan global.
/QIfist Ditolak. Setelah digunakan untuk menentukan cara mengonversi dari jenis floating-point ke jenis integral.
/V Ditolak. .obj Mengatur string versi file.
/Wp64 Kedaluwarsa. Mendeteksi masalah portabilitas 64-bit.
/Yd Ditolak. Menempatkan informasi penelusuran kesalahan lengkap di semua file objek. Gunakan /Zi sebagai gantinya.
/Zc:forScope- Ditolak. Menonaktifkan kesuaian dalam untuk cakupan perulangan.
/Ze Ditolak. Mengaktifkan ekstensi bahasa.
/Zg Dihapus di Visual Studio 2015. Menghasilkan prototipe fungsi.

17.10 Opsi ini tersedia mulai visual Studio 2022 versi 17.10.

Lihat juga

Referensi bangunan C/C++
Opsi pengkompilasi MSVC
Sintaks baris perintah pengkompilasi MSVC