Поделиться через


Параметры компилятора в алфавитном порядке

Эта таблица содержит алфавитный список параметров компилятора. Список параметров компилятора по категориям см . в разделе "Параметры компилятора", перечисленные в статье категории .

Параметры компилятора

Вариант Характер использования
@ Указывает файл ответа.
/? Отображает список параметров компилятора.
/AI<dir> Указывает каталог для поиска для разрешения ссылок на файлы, переданные директиве #using .
/analyze Включает анализ кода
/arch Минимальные требования к архитектуре ЦП.
/arm64EC Создайте код, совместимый с ABI arm64EC.
/await Включите расширения соподобий (возобновление функций).
/await:strict Включите стандартную поддержку coroutine C++20 с более ранними версиями языка.
/bigobj Увеличивает число адресуемых секций в OBJ-файле.
/C Сохраняет комментарии на этапе предварительной обработки.
/c Задает компиляцию без компоновки.
/cgthreads Указывает количество потоков cl.exe, используемых для оптимизации и создания кода.
/clr Создает выходной файл, предназначенный для выполнения в среде CLR.
/clr:implicitKeepAlive- Отключение неявного выброса System::GC::KeepAlive(this).
/clr:initialAppDomain Включите начальное поведение ПриложенияDomain Visual C++ 2002.
/clr:netcore Создание сборок, предназначенных для среды выполнения .NET Core.
/clr:noAssembly Не создайте сборку.
/clr:nostdimport Не импортируйте неявно необходимые сборки.
/clr:nostdlib Игнорируйте каталог system .NET Framework при поиске сборок.
/clr:pure Создайте выходной файл только для IL (без собственного исполняемого кода).
/clr:safe Создайте только проверяемый выходной файл, доступный только для IL.
/constexpr:backtrace<N> constexpr Отображение N-вычислений в диагностика (по умолчанию: 10).
/constexpr:depth<N> Ограничение глубины рекурсии для constexpr оценки (по умолчанию: 512).
/constexpr:steps<N> Завершение constexpr оценки после N шагов (по умолчанию: 100000)
/D<name>{=|#}<text> Определяет константы и макросы.
/diagnostics Формат диагностики: выводит сведения о столбцах.
/diagnostics:caret[-] Формат диагностики: выводит столбец и указанную строку источника.
/diagnostics:classic Используйте устаревший формат диагностика.
/doc Обрабатывает комментарии к документации в XML-файл.
/E Копирует выходные данные препроцессора в стандартный вывод.
/EHa Включите обработку исключений C++ (с исключениями SEH).
/EHc extern "C" по умолчанию использует nothrow.
/EHr Всегда создавайте noexcept проверки завершения среды выполнения.
/EHs Включите обработку исключений C++ (без исключений SEH).
/EP Копирует выходные данные препроцессора в стандартный вывод.
/errorReport Устарело. параметры отчеты об ошибках Windows (WER) управляют отчетом об ошибках.
/execution-charset Задайте набор символов выполнения.
/experimental:log Включает экспериментальные структурированные выходные данные SARIF.
/experimental:module Включает поддержку экспериментального модуля.
/exportHeader Создайте файлы единиц заголовка (.ifc), указанные входными аргументами.
/external:anglebrackets Обрабатывать все заголовки, включенные как <> внешние.
/external:env:<var> Укажите переменную среды с расположениями внешних заголовков.
/external:I <path> Укажите расположение внешних заголовков.
/external:templates[-] Оцените уровень предупреждений в цепочке создания экземпляров шаблона.
/external:W<n> Задайте уровень предупреждения для внешних заголовков.
/F Задает размер стека.
/FA Настраивает файл списка сборки.
/Fa Создает файл списка сборки.
/fastfail Включите режим быстрого сбоя.
/favor:<blend|AMD64|INTEL64|ATOM> Создает код, который оптимизирован для конкретной архитектуры или диапазона архитектур.
/FC Отображает полный путь к файлам исходного кода, переданным cl.exe в диагностическом тексте.
/Fd Переименовывает файл базы данных программы.
/Fe Переименовывает исполняемый файл.
/feature Включение функций архитектуры.17.10
/FI<file> Выполняет предварительную обработку указанного включаемого файла.
/Fi Задает предобработанное имя выходного файла.
/Fm Создает файл сопоставления.
/Fo Создает объектный файл.
/Fp Задает имя файла предкомпилированного заголовка.
/fp:contract При создании кода рекомендуется учитывать контракты с плавающей запятой.
/fp:except[-] При создании кода следует учитывать исключения с плавающей запятой.
/fp:fast "быстрая" модель с плавающей запятой; результаты менее предсказуемы.
/fp:precise "точную" модель с плавающей запятой; результаты предсказуемы.
/fp:strict "строгая" модель с плавающей запятой (подразумевает /fp:except).
/fpcvt:BC Обратная совместимость с плавающей запятой для преобразования целочисленных чисел без знака.
/fpcvt:IA Intel native floating-point to unsigned integer conversion behavior.
/FR, /Fr Имена созданных .sbr файлов браузера. /Fr не рекомендуется к использованию.
/FS Принудительно выполняет запись в PDB-файл, сериализуемый с помощью MSPDBSRV.EXE.
/fsanitize Включает компиляцию инструментирования санитизатора, например AddressSanitizer.
/fsanitize-coverage Включает компиляцию инструментирования покрытия кода для библиотек, таких как LibFuzzer.
/Ft<dir> Расположение файлов заголовков, созданных для #import.
/FU<file> Принудительно использует имя файла, как если бы оно было передано директиве #using .
/Fx Выполняет слияние введенного кода с исходным файлом.
/GA Выполняет оптимизацию для приложений Windows.
/Gd Использует соглашение о вызовах __cdecl . (только x86)
/Ge Устарело. Включает стековые зонды.
/GF Включает объединение строк.
/GH Вызывает функцию-обработчик _pexit.
/Gh Вызывает функцию-обработчик _penter.
/GL[-] Включает оптимизацию всей программы.
/Gm[-] Устарело. Включает минимальное перепостроение.
/GR[-] Включает информацию о типах во время выполнения (RTTI).
/Gr Использует соглашение о вызовах __fastcall . (только x86)
/GS[-] Проверяет безопасность буфера.
/Gs[n] Управляет стековыми зондами.
/GT Поддерживает безопасность волокон для данных, размещаемых с помощью статической локальной памяти потока.
/Gu[-] Убедитесь, что разные функции имеют разные адреса.
/guard:cf[-] Добавление проверок безопасности для защиты потока управления.
/guard:ehcont[-] Включает метаданные продолжения EH.
/Gv Использует соглашение о вызовах __vectorcall . (только x86 и x64)
/Gw[-] Включает глобальную оптимизацию данных всей программы.
/GX[-] Устарело. Включает синхронную обработку исключений. Вместо этого используйте /EH.
/Gy[-] Включает компоновку на уровне функций.
/GZ Устарело. Включает быстрые проверки. (То же, что /RTC1и )
/Gz Использует соглашение о вызовах __stdcall . (только x86)
/H Устарело. Ограничивает длину внешних (открытых) имен.
/headerName Создайте единицу заголовка из указанного заголовка.
/headerUnit Укажите, где найти файл единицы заголовка (.ifc) для указанного заголовка.
/HELP Отображает список параметров компилятора.
/homeparams Принудительная запись параметров, переданных в регистрах, в соответствующие места в стеке при вхождении в функцию. Этот параметр компилятора предназначен только для компиляторов x64 (собственный и кросс-компиляция).
/hotpatch Создает образ, допускающий горячее обновление.
/I<dir> Осуществляет поиск включаемых файлов в каталоге.
/ifcOutput Укажите имя выходного файла или каталог для встроенных .ifc файлов.
/interface Обрабатывает входной файл как единицу интерфейса модуля.
/internalPartition Обрабатывайте входной файл как внутреннюю единицу секции.
/J Изменяет тип char по умолчанию.
/jumptablerdata Поместите таблицы инструкции .rdata switch case jump в раздел.
/JMC Поддерживает отладку собственного кода C++ .
/kernel Компилятор и компоновщик создают двоичный файл, который можно выполнить в ядре Windows.
/LD Создает библиотеку динамической компоновки.
/LDd Создает отладочную библиотеку динамической компоновки.
/link Передает указанный параметр в программу LINK.
/LN Создает MSIL .netmodule.
/MD Компилируется для создания многопоточной библиотеки DLL с помощью MSVCRT.lib.
/MDd Компилируется для создания многопоточной библиотеки DLL отладки с помощью MSVCRTD.lib.
/MP Параллельное построение нескольких исходных файлов.
/MT Компилируется для создания многопоточного исполняемого файла с помощью LIBCMT.lib.
/MTd Компилируется для создания многопоточного исполняемого файла отладки с помощью LIBCMTD.lib.
/nologo Подавление отображения приветствия.
/O1 Уменьшает размер кода.
/O2 Создает быстрый код.
/Ob<n> Управляет подстановкой подставляемых функций.
/Od Отключает оптимизацию.
/Og Устарело. Использует глобальную оптимизацию.
/Oi[-] Создает встроенные функции.
/openmp Включается в исходном #pragma omp коде.
/openmp:experimental Включите расширения языка OpenMP 2.0 и выберите расширения языка OpenMP 3.0+ .
/openmp:llvm Расширения языка OpenMP с помощью среды выполнения LLVM.
/options:strict Нераспознанные параметры компилятора являются ошибками.
/Os Отдает приоритет уменьшению размера кода.
/Ot Отдает приоритет быстрому коду.
/Ox Подмножество /O2, которое не включает /GF или /Gy.
/Oy Пропускает указатель на фрейм. (только x86)
/P Записывает выходные данные препроцессора в файл.
/PD Печать всех определений макросов.
/permissive[-] Задайте стандартный режим соответствия.
/PH Создает #pragma file_hash при предварительной обработке.
/presetPadding Ноль инициализировать заполнение для типов классов на основе стека.
/Qfast_transcendentals Создает быстрые трансцендентные функции.
/QIfist Устарело. Подавляет вызов вспомогательной функции _ftol при необходимости преобразования из типа с плавающей запятой в целочисленный тип. (только x86)
/Qimprecise_fwaits Удаляет команды fwait внутри блоков try .
/QIntel-jcc-erratum Снижает влияние на производительность обновления микрокода Intel JCC erratum.
/Qpar-report:<n> Включает уровни отчетов для автоматической параллелизации.
/Qpar Включает автоматическую параллелизацию циклов.
/Qsafe_fp_loads Использует целочисленные инструкции перемещения значений с плавающей запятой и отключает определенные оптимизации загрузки значений с плавающей запятой.
/Qspectre[-] Включите способы устранения рисков для CVE 2017-5753 для класса атак Spectre.
/Qspectre-load Создайте инструкции сериализации для каждой инструкции загрузки.
/Qspectre-load-cf Создайте инструкции сериализации для каждой инструкции потока управления, загружающей память.
/Qvec-report:<n> Включает уровни отчетов для автоматической векторизации.
/reference Используйте именованный модуль IFC.
/RTC1 Включение быстрых проверок среды выполнения (эквивалентно /RTCsu).
/RTCc Преобразование в более мелкие проверки типов во время выполнения.
/RTCs Включение проверок среды выполнения кадра стека.
/RTCu Включает неинициализированные проверки локального использования.
/scanDependencies Перечисление зависимостей модуля в стандартной форме JSON C++ .
/sdl Включите дополнительные функции безопасности и предупреждения.
/showIncludes Отображает список всех включаемых файлов во время компиляции.
/source-charset Задайте исходный набор символов.
/sourceDependencies Список всех зависимостей на уровне источника.
/sourceDependencies:directives Перечисление зависимостей модуля и блока заголовка.
/std:c++14 C++14 standard ISO/IEC 14882:2014 (по умолчанию).
/std:c++17 C++17 standard ISO/IEC 14882:2017.
/std:c++20 C++20 standard ISO/IEC 14882:2020.
/std:c++latest Последние предварительные версии черновика C++ стандартных функций.
/std:c11 Стандарт C11 ISO/IEC 9899:2011.
/std:c17 C17 standard ISO/IEC 9899:2018.
/std:clatest Последние стандартные функции предварительной версии C.
/TC Указывает, что все исходные файлы — C.
/Tc Указывает исходный файл на языке C.
/TP Указывает, что все исходные файлы — C++.
/Tp Указывает исходный файл на языке C++.
/translateInclude Рассматривать #include как import.
/U<name> Удаляет предварительно определенный макрос.
/u Удаляет все предварительно определенные макросы.
/utf-8 Задайте для наборов исходных и выполняемых символов значение UTF-8.
/V Устарело. Задает строку версии.
/validate-charset Проверьте файлы UTF-8 только для совместимых символов.
/vd{0|1|2} Подавляет или включает скрытые члены класса vtordisp .
/vlen Задает длину вектора.
/vmb Использует оптимальное основание для указателей на члены.
/vmg Использует полное обобщение для указателей на члены.
/vmm Объявляет множественное наследование.
/vms Объявляет одиночное наследование.
/vmv Объявляет виртуальное наследование.
/volatile:iso Семантика получения и выпуска не гарантируется при переменных доступах.
/volatile:ms Семантика получения и выпуска гарантируется при переменных доступах.
/volatileMetadata Создайте метаданные при доступе к переменной памяти.
/w Отключите все предупреждения.
/W0, , /W1/W2, /W3/W4 Задайте уровень предупреждения выходных данных.
/w1<n>, , /w2<n>/w3<n>/w4<n> Задайте уровень предупреждения для указанного предупреждения.
/Wall Включите все предупреждения, включая предупреждения, отключенные по умолчанию.
/wd<n> Отключите указанное предупреждение.
/we<n> Обработайте указанное предупреждение как ошибку.
/WL Включите однострочный диагностика для сообщений об ошибках и предупреждениях при компиляции исходного кода C++ из командной строки.
/wo<n> Отображение указанного предупреждения только один раз.
/Wv:xx[.yy[.zzzzz]] Отключите предупреждения, появившиеся после указанной версии компилятора.
/WX Обработайте предупреждения как ошибки.
/X Пропускает стандартный каталог включаемых файлов.
/Y- Пропускает все прочие параметры компилятора, относящиеся к предварительно скомпилированным заголовкам, в текущем построении.
/Yc Создайте .PCH файл.
/Yd Устарело. Размещает полную отладочную информацию во всех объектных файлах. Вместо этого используйте /Zi.
/Yl Вставляет ссылку PCH при создании отладочной библиотеки.
/Yu Использует файл предкомпилированного заголовка при построении.
/Z7 Создает сведения о отладке, совместимые с C 7.0.
/Za Отключает некоторые расширения языка C89 в коде C.
/Zc:__cplusplus[-] __cplusplus Включите макрос, чтобы сообщить о поддерживаемом стандарте (отключен по умолчанию).
/Zc:__STDC__ __STDC__ Включить макрос для отчета о стандарте C поддерживается (отключено по умолчанию).
/Zc:alignedNew[-] Включите динамическое выделение C++17 (по умолчанию в C++17).
/Zc:auto[-] Принудительно примените новое значение auto C++ (по умолчанию).
/Zc:char8_t[-] Включите или отключите поддержку const char8_t собственного u8 литерала C++20 (по умолчанию, за исключением случаев, если они не поддерживаются/std:c++20).
/Zc:enumTypes[-] Включите стандартные правила C++ для enum вычета типов (отключено по умолчанию).
/Zc:externC[-] Применение стандартных правил C++ для extern "C" функций (подразумеваемых /permissive-).
/Zc:externConstexpr[-] Включите внешнюю компоновку для constexpr переменных (отключено по умолчанию).
/Zc:forScope[-] Применение стандартных правил области C++ for (по умолчанию).
/Zc:gotoScope Применение стандартных правил C++ goto вокруг инициализации локальных переменных (подразумеваемых /permissive-).
/Zc:hiddenFriend[-] Принудительное применение правил скрытых друзей C++ (подразумеваемых /permissive-)
/Zc:implicitNoexcept[-] Включите неявные noexcept функции для обязательных функций (по умолчанию).
/Zc:inline[-] Удалите функции или данные без ссылок, если они COMDAT или имеют только внутреннюю компоновку (отключено по умолчанию).
/Zc:lambda[-] Включите новый лямбда-процессор для синтактических проверок режима соответствия в универсальных лямбда-кодах.
/Zc:noexceptTypes[-] Применение правил C++17 noexcept (по умолчанию в C++17 или более поздней версии).
/Zc:nrvo[-] Включение необязательных копий и перемещение элизионов (по умолчанию /O2/permissive-/std:c++20 или более поздних версий).
/Zc:preprocessor[-] Используйте новый препроцессор соответствия (отключено по умолчанию, за исключением C11/C17).
/Zc:referenceBinding[-] Временная функция UDT не привязывается к ссылке lvalue, отличной от const (по умолчанию).
/Zc:rvalueCast[-] Принудительное применение правил явного преобразования типов C++ (отключено по умолчанию).
/Zc:sizedDealloc[-] Включите функции размещения сделки глобального размера C++14 (по умолчанию).
/Zc:strictStrings[-] Отключите строковый литерал в char* или wchar_t* преобразование (отключено по умолчанию).
/Zc:templateScope[-] Применение стандартных правил тени параметров шаблона C++ (отключено по умолчанию).
/Zc:ternary[-] Принудительное применение правил условного оператора для типов операнда (отключено по умолчанию).
/Zc:threadSafeInit[-] Включите локальную статическую инициализацию в потокобезопасном режиме (по умолчанию).
/Zc:throwingNew[-] Предположим, что возникает сбой operator new (по умолчанию отключен).
/Zc:tlsGuards[-] Создайте проверки среды выполнения для инициализации переменной TLS (по умолчанию).
/Zc:trigraphs Включите триграфы (устаревшие, отключенные по умолчанию).
/Zc:twoPhase[-] Используйте несоответствующее поведение синтаксического анализа шаблона (соответствующее по умолчанию).
/Zc:wchar_t[-] wchar_t является собственным типом, а не типом (по умолчанию).
/Zc:zeroSizeArrayNew[-] Вызов элемента new/delete для массивов объектов нулевого размера (по умолчанию).
/Ze Устарело. Включает расширения языка C89.
/Zf Улучшает время создания PDB в параллельных сборках.
/ZH:[MD5|SHA1|SHA_256] Указывает MD5, SHA-1 или SHA-256 для контрольных сумм в сведениях отладки.
/ZI Включает отладочную информацию в базу данных программы, совместимую с функцией "Изменить и продолжить". (только x86)
/Zi Создает полную отладочную информацию.
/Zl Удаляет имя библиотеки по умолчанию из .obj файла.
/Zm Указывает предел выделения памяти для предкомпилированного заголовка.
/Zo[-] Создайте более подробные сведения об отладке для оптимизированного кода.
/Zp[n] Упаковывает члены структур.
/Zs Проверяет только синтаксис.
/ZW Создает выходной файл для запуска в среда выполнения Windows.

17.10 Этот параметр доступен начиная с Visual Studio 2022 версии 17.10.

См. также

Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC