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


Параметры компилятора, упорядоченные по категориям

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

Оптимизация

Параметр

Назначение

/O1

Уменьшает размер кода.

/O2

Создает быстрый код.

/Ob

Управляет подстановкой подставляемых функций.

/Od

Отключает оптимизацию.

/Og

Использует глобальную оптимизацию.

/Oi

Создает встроенные функции.

/Os

Отдает приоритет уменьшению размера кода.

/Ot

Отдает приоритет быстрому коду.

/Ox

Использует максимальную оптимизацию (/Ob2gity /Gs).

/Oy

Пропускает указатель на фрейм. (только x86)

/favor

Создает код, который оптимизирован для конкретной архитектуры или диапазона архитектур.

Создание кода

Параметр

Назначение

/arch

Использование инструкций SSE или SSE2 при создании кода. (только x86)

/clr

Создает выходной файл, предназначенный для выполнения в среде CLR.

/EH

Задает модель обработки исключений.

/fp

Указывает поведение чисел с плавающей запятой.

/GA

Выполняет оптимизацию для приложений Windows.

/Gd

Использует соглашение о вызовах __cdecl. (только x86)

/Ge

Включает стековые зонды.

/GF

Включает объединение строк.

/Gh

Вызывает функцию-обработчик _penter.

/GH

Вызывает функцию-обработчик _pexit.

/GL

Включает оптимизацию всей программы.

/Gm

Включает минимальное перепостроение.

/GR

Включает информацию о типах во время выполнения (RTTI).

/Gr

Использует соглашение о вызовах __fastcall. (только x86)

/GS

Проверяет безопасность буфера.

/Gs

Управляет стековыми зондами.

/GT

Поддерживает безопасность волокон для данных, размещаемых с помощью статической локальной памяти потока.

/Gv

Использует соглашение о вызовах __vectorcall. (только x86 и x64)

/Gw

Включает глобальную оптимизацию данных всей программы.

/GX

Включает синхронную обработку исключений.

/Gy

Включает компоновку на уровне функций.

/GZ

Включает быстрые проверки. (Аналогично /RTC1)

/Gz

Использует соглашение о вызовах __stdcall. (только x86)

/homeparams

Принудительная запись параметров, переданных в регистрах, в соответствующие места в стеке при вхождении в функцию. Данный параметр компилятора предназначен только для компиляторов x64 (машинная компиляция и кросс-компиляция).

/hotpatch

Создает образ, допускающий горячее обновление.

/Qfast_transcendentals

Создает быстрые трансцендентные функции.

QIfist

Подавляет вызов вспомогательной функции _ftol при необходимости преобразования из типа с плавающей запятой в целочисленный тип. (только x86)

/Qimprecise_fwaits

Удаляет команды fwait внутри блоков try.

/Qpar

Включает автоматическую параллелизацию циклов.

/Qpar-report

Включает уровни отчетов для автоматической параллелизации.

/Qsafe_fp_loads

Использует целочисленные инструкции перемещения значений с плавающей запятой и отключает определенные оптимизации загрузки значений с плавающей запятой.

/Qvec-report (уровень отчетности автоматического векторизатора)

Включает уровни отчетов для автоматической векторизации.

/RTC

Включает проверку ошибок во время выполнения.

/volatile

Выбирает способ интерпретации ключевого слова volatile.

Выходные файлы

Параметр

Назначение

/doc

Обрабатывает комментарии к документации в XML-файл.

/FA

Настраивает файл списка сборки.

/Fa

Создает файл списка сборки.

/Fd

Переименовывает файл базы данных программы.

/Fe

Переименовывает исполняемый файл.

/Fi

Задает предобработанное имя выходного файла.

/Fm

Создает файл сопоставления.

/Fo

Создает объектный файл.

/Fp

Задает имя файла предкомпилированного заголовка.

/FR /Fr

Создает файлы браузера.

Препроцессор

Параметр

Назначение

/AI

Указывает каталог поиска для разрешения ссылок на файлы, указанные в директиве#using.

/C

Сохраняет комментарии на этапе предварительной обработки.

/D

Определяет константы и макросы.

/E

Копирует выходные данные препроцессора в стандартный вывод.

/EP

Копирует выходные данные препроцессора в стандартный вывод.

/FI

Выполняет предварительную обработку указанного включаемого файла.

/FU

Обеспечивает принудительное использование имени файла, как если бы оно было указано в директиве #using.

/Fx

Выполняет слияние введенного кода с исходным файлом.

/I

Осуществляет поиск включаемых файлов в каталоге.

/P

Записывает выходные данные препроцессора в файл.

/U

Удаляет предварительно определенный макрос.

/u

Удаляет все предварительно определенные макросы.

/X

Пропускает стандартный каталог включаемых файлов.

Язык

Параметр

Назначение

/openmp

Включает прагма-директиву #pragma omp в исходном коде.

/vd

Подавляет или включает скрытые члены класса vtordisp.

/vmb

Использует оптимальное основание для указателей на члены.

/vmg

Использует полное обобщение для указателей на члены.

/vmm

Объявляет множественное наследование.

/vms

Объявляет одиночное наследование.

/vmv

Объявляет виртуальное наследование.

/Z7

Создает отладочную информацию, совместимую с C 7.0.

/Za

Отключает расширения языка.

/Zc

Задает стандартное поведение при использовании параметра /Ze.

/Ze

Включает расширения языка.

/Zg

Создает прототипы функций.

/ZI

Включает отладочную информацию в базу данных программы, совместимую с функцией "Изменить и продолжить". (только x86)

/Zi

Создает полную отладочную информацию.

/Zl

Удаляет имя библиотеки по умолчанию из OBJ-файла.

/Zo

Создает расширенные сведения об отладке для оптимизированного кода в неотладочных сборках.

/Zpn

Упаковывает члены структур.

/Zs

Проверяет только синтаксис.

/ZW

Создает выходной файл для выполнения в Среда выполнения Windows.

Компоновка

Параметр

Назначение

/F

Задает размер стека.

/LD

Создает библиотеку динамической компоновки.

/LDd

Создает отладочную библиотеку динамической компоновки.

/link

Передает указанный параметр в программу LINK.

/LN

Создает модуль MSIL.

/MD

Компилирует для создания многопотоковой библиотеки DLL с помощью библиотеки MSVCRT.lib.

/MDd

Компилирует для создания отладочной многопотоковой библиотеки DLL с помощью библиотеки MSVCRTD.lib.

/MT

Компилирует для создания многопотокового исполняемого файла с помощью библиотеки LIBCMT.lib.

/MTd

Компилирует для создания отладочного многопотокового исполняемого файла с помощью библиотеки LIBCMTD.lib.

Предкомпилированный заголовок

Параметр

Назначение

/Y-

Пропускает все прочие параметры компилятора, относящиеся к предварительно скомпилированным заголовкам, в текущем построении.

/Yc

Создает файл предкомпилированного заголовка.

/Yd

Размещает полную отладочную информацию во всех объектных файлах.

/Yu

Использует файл предкомпилированного заголовка при построении.

Прочее

Параметр

Назначение

/?

Отображает список параметров компилятора.

@

Указывает файл ответа.

/analyze

Включает анализ кода

/bigobj

Увеличивает число адресуемых секций в OBJ-файле.

/c

Задает компиляцию без компоновки.

/cgthreads

Задает число потоков cl.exe, используемых для оптимизации и создания кода.

/errorReport

Разрешает передавать данные о внутренних ошибках компилятора (ICE) непосредственно в группу Visual C++.

/FC

Отображает полный путь файлов исходного кода, переданных программе cl.exe, в диагностическом тексте.

/FS

Обеспечивает принудительную сериализацию записей в файл базы данных программы (PDB) с помощью MSPDBSRV.EXE.

/H

Ограничивает длину внешних (открытых) имен.

/HELP

Отображает список параметров компилятора.

/J

Изменяет тип char по умолчанию.

/kernel

Компилятор и компоновщик создадут двоичный файл для выполнения в ядре Windows.

/MP

Параллельное построение нескольких исходных файлов.

/nologo

Подавление отображения приветствия.

/sdl

Включает дополнительные функции безопасности и предупреждения.

/showIncludes

Отображает список всех включаемых файлов во время компиляции.

/Tc /TC

Указывает исходный файл на языке C.

/Tp /TP

Указывает исходный файл на языке C++.

/V

Задает строку версии.

/Wall

Включает все предупреждения, в том числе предупреждения, отключенные по умолчанию.

/W

Устанавливает порог предупреждений.

/w

Отключает все предупреждения.

/WL

Включает однострочные диагностические сообщения об ошибках и предупреждения в ходе компиляции исходного кода C++ из командной строки.

/Wp64

Выявляет проблемы 64-битной переносимости.

/Yd

Размещает полную отладочную информацию во всех объектных файлах.

/Yl

Вставляет ссылку PCH при создании отладочной библиотеки.

/Zm

Указывает предел выделения памяти для предкомпилированного заголовка.

См. также

Ссылки

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

Настройка параметров компилятора

Другие ресурсы

Образец построения C/C++