Бөлісу құралы:


Страницы свойств C/C++

Следующие страницы свойств находятся в разделе Проект>Свойства>Свойства конфигурации>C/C++:

Общие свойства C/C++

Дополнительные каталоги включаемых файлов

Указывает один или несколько каталогов для добавления в путь включения. Разделяйте каталоги с запятыми (';) при наличии нескольких каталогов. Задает параметр компилятора /I (каталоги включения, дополнительные).

Дополнительные каталоги #using

Указывает один или несколько каталогов поиска для разрешения имен, переданных директиве #using. Разделяйте каталоги с запятыми (';) при наличии нескольких каталогов. Задает параметр компилятора /AI .

Дополнительные каталоги BMI

Указывает один или несколько каталогов, в которых следует искать для разрешения переданных директиве import имен. Разделяйте каталоги с запятыми (';) при наличии нескольких каталогов. Задает параметр компилятора /ifcSearchDir[path] .

Дополнительные зависимости модулей

Указывает один или несколько модулей, используемых для разрешения имен, переданных директиве import . Разделяйте каталоги с запятыми (';) при наличии нескольких каталогов. Задает параметр компилятора /reference .

Дополнительные зависимости единиц заголовка

Указывает один или несколько блоков заголовков, используемых для определения имен, передаваемых директиве заголовка import. Разделяйте каталоги с запятыми (';) при наличии нескольких каталогов. Задает параметр компилятора /headerUnit .

Источники сканирования для зависимостей модуля

Если задано значение "Да", компилятор сканирует все источники C++, а не только интерфейс модуля и источники единиц заголовка для зависимостей модулей и блоков заголовков. Система сборки создает полный граф зависимостей, который гарантирует, что все импортированные модули и блоки заголовков создаются перед компиляцией файлов, зависящих от них. При использовании с Преобразованием включений в импорты, любой файл заголовка, который указан в файле header-units.json в том же каталоге, что и заголовочный файл, компилируется в модуль заголовка.

Файлы с расширением .ixx, и файлы, у которых свойство Файл>C/C++>Compile As установлено в Компилировать как единицу заголовка C++ (/exportHeader), всегда сканируются.

Переведите "Includes" на "Imports"

Если задано значение "Да", компилятор обрабатывает #include директиву как директиву import , если выполняются определенные условия: файл заголовка указывается в header-units.json файле в том же каталоге, а скомпилированный блок заголовка ( .ifc файл) доступен для файла заголовка. В противном случае файл заголовка рассматривается как обычный #include. Файл header-units.json используется для создания блоков заголовков для каждого #include без дублирования символов. В сочетании с Сканированием источников на зависимости модулей компилятор автоматически находит все заголовочные файлы, которые можно скомпилировать в единицы заголовков. Это свойство задает параметр компилятора /translateInclude .

Формат отладочной информации

Определяет тип отладочной информации, создаваемой компилятором. Для данного свойства требуются совместимые настройки компоновщика. Задает /Z7опции компилятора, /Zi/ZI (формат сведений отладки).

Варианты выбора

  • Нет (None) — не создает сведений об отладке, поэтому компиляция может быть быстрее.
  • Совместимый с C7 (OldStyle) — создает объектные файлы, содержащие полную информацию о символьной отладке. Файл PDB не создается.
  • База данных программы (ProgramDatabase) — создает базу данных программы (PDB), содержащую сведения о типах и символьные сведения об отладке для использования с отладчиком. Сведения о символьной отладке включают имена и типы переменных и функций, а также номера строк.
  • База данных программы для изменения и продолжения (EditAndContinue) — создает базу данных программы, как описано ранее, в формате, поддерживающем функцию "Изменить и продолжить ".

Поддержка отладки только моего кода

Добавляет вспомогательный код для включения отладки Just My Code в этой единице компиляции. Наборы /JMC.

Поддержка динамической отладки C++

(предварительная версия) Задает флаг /dynamicdeopt компилятора для включения динамической отладки C++. Размещайте неоптимизованные точки останова и выполняйте переход внутрь функций в любом месте с деоптимизацией функции по запросу. Используйте этот режим для отладки оптимизированного кода.

Поддержка общей языковой среды выполнения

Используйте службу среды выполнения .NET. Этот коммутатор несовместим с некоторыми другими коммутаторами; Дополнительные сведения см. в документации по семейству /clr коммутаторов.

Варианты выбора

  • Нет поддержки Общей исполняемой среды - Нет поддержки Общей исполняемой среды.
  • Поддержка среды CLR — создает метаданные для вашего приложения, используемые другими приложениями CLR. Кроме того, приложение может потреблять типы и данные в метаданных других компонентов среды CLR.
  • Pure MSIL Common Language RunTime Support — создает выходной файл только MSIL без собственного исполняемого кода, хотя он может содержать собственные типы, скомпилированные в MSIL.
  • Безопасная поддержка общего языка времени выполнения MSIL — создается только для MSIL (без собственного исполняемого кода) и с проверяемым выходным файлом.

Потребление расширения среды выполнения Windows

Используйте расширения языков среды выполнения Windows Runtime. Наборы /ZW.

Отключить загрузочное объявление

Подавляет отображение баннера входа при запуске компилятора и отображении информационных сообщений во время компиляции.

Уровень предупреждений

Выберите уровень строгости компилятора по отношению к ошибкам в коде. Наборы /W0 - /W4.

Варианты выбора

  • Отключить все предупреждения . Уровень 0 отключает все предупреждения.
  • Уровень 1 . Уровень 1 отображает серьезные предупреждения. Уровень 1 — это уровень предупреждения по умолчанию в командной строке.
  • Уровень 2 - Уровень 2 отображает все предупреждения уровня 1 и менее серьезные предупреждения.
  • Уровень 3 . Уровень 3 отображает все предупреждения уровня 2 и все другие предупреждения, рекомендуемые для рабочих целей.
  • Уровень 4 — уровень 4 отображает все предупреждения уровня 3 и информационные предупреждения, которые в большинстве случаев можно безопасно игнорировать.
  • EnableAllWarnings — включает все предупреждения, включая отключенные по умолчанию.

Обрабатывать предупреждения как ошибки

Обрабатывает предупреждения компилятора как ошибки. Для нового проекта лучше всего использовать /WX в каждой компиляции. Устраните все предупреждения, чтобы свести к минимуму дефекты кода, которые трудно найти.

Версия предупреждения

Скрыть предупреждения, появившиеся после определенной версии компилятора. Наборы /Wv:xx[.yy[.zzzzz]].

Формат диагностики

Включает расширенные диагностики с информацией о столбцах и контекстом исходного кода в диагностических сообщениях.

Варианты выбора

  • Caret — предоставляет сведения о столбце в диагностическом сообщении. И выводит соответствующую строку исходного кода с кареткой, указывающей на проблемный столбец.
  • Информация о столбце - также указывает номер столбца в строке, в которой выдана диагностика, если это применимо.
  • Классический — выводит только предыдущие краткие диагностические сообщения с номером строки.

Проверки SDL

Рекомендуемые проверки дополнительного жизненного цикла разработки безопасности (SDL); включает включение дополнительных функций создания защищенного кода и включает дополнительные предупреждения, относящиеся к безопасности, в качестве ошибок. Наборы /sdl, /sdl-.

Многопроцессорная компиляция

Включите компиляцию с несколькими процессорами. Задает параметр компилятора /MP .

Включить санитайзер адресов

Компилирует и связывает программу с инструментированием AddressSanitizer. Это свойство в настоящее время поддерживает целевые сборки x86 и x64. Задает параметр компилятора /fsanitize .

Включить поддержку фуззера (экспериментальная)

Компилирует программы с фаззером. Включите AddressSanitizer для получения наилучших результатов. В настоящее время доступно для сборок x86 и x64. Наборы /fsanitize=fuzzer.

Свойства оптимизации C/C++

Оптимизация

Выбор параметра для оптимизации кода; Выберите "Настраиваемый" для использования определенных параметров оптимизации. Наборы /Od, /O1/O2.

Варианты выбора

  • Настраиваемый — настраиваемая оптимизация.
  • Отключено — отключить оптимизацию.
  • Максимальная оптимизация (предпочтение размера) — эквивалентно /Os /Oy /Ob2 /Gs /GF /Gy
  • Максимальная оптимизация (в пользу скорости) — эквивалентно /Oi /Ot /Oy /Ob2 /Gs /GF /Gy
  • Оптимизация (благоприятствование скорости) — эквивалентно /Oi /Ot /Oy /Ob2

Расширение встроенной функции

Выберите уровень расширения встроенной функции для сборки. Наборы /Ob.

Варианты выбора

  • По умолчанию
  • Отключено — отключает встроенное расширение, которое по умолчанию включено.
  • Только __inline — расширяет только функции, помеченные как inline, __forceinlineили __inline. Или, в функции-члене C++, определенной в объявлении класса.
  • Любой подходящий — расширяет функции, помеченные как inline или __inline, а также любую другую функцию, которую выбирает компилятор. (Расширение происходит по усмотрению компилятора, часто называемое автоинлайнингом.)

Включение встроенных функций

Включает встроенные функции. Использование встроенных функций генерирует более быстрый, но, возможно, более объемный код. Наборы /Oi.

Предпочитать размер или скорость

Следует ли использовать размер кода или скорость кода; Должна быть включена глобальная оптимизация. Наборы /Ot, /Os.

Варианты выбора

  • Предпочтение небольшому коду — минимизирует размер EXE и DLL, указывая компилятору отдавать предпочтение размеру, а не скорости.
  • Предпочитать быстрый код. Максимально повышает скорость EXE и DLL, инструктируя компилятор предпочитать скорость перед размером. (Это значение по умолчанию.)
  • Нет размера и оптимизации скорости.

Опустить указатели кадров

Подавляет создание указателей фреймов в стеке вызовов.

Включить оптимизации, безопасные для волокон

Позволяет оптимизировать пространство памяти при использовании волокон и доступа к локальному хранилищу потока. Наборы /GT.

Оптимизация всей программы

Обеспечивает оптимизацию между модулями с помощью задержки генерации кода до времени связывания. Требуется опция компоновщика Link Time Code Generation. Наборы /GL.

Свойства препроцессора C/C++

Определения препроцессора

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

Отменить определения препроцессора

Задает одну или несколько отмен определений препроцессора. Наборы /U.

Отменить все определения препроцессора

Удалите все ранее определённые значения препроцессора. Наборы /u.

Игнорировать стандартные пути включения

Запрещает компилятору искать файлы для включения в каталогах, указанных в переменных среды INCLUDE.

Предварительная обработка файла

Предварительно обрабатывает исходные файлы C и C++ и записывает предварительно обработанные выходные данные в файл. Этот параметр подавляет компиляцию и не создает .obj файл.

Предварительная обработка скрытие номеров строк

Предварительная обработка без директив #line.

Сохранить комментарии

Подавляет полосу комментариев из исходного кода; требует установки по крайней мере одного из параметров предварительной обработки . Наборы /C.

Используйте препроцессор, соответствующий стандартам

Используйте стандартный препроцессор (/Zc:preprocessor). В настоящее время подразумевается версиями /std:c11 и более поздними. Чтобы использовать устаревший препроцессор, задайте для этого свойства значение No.

Свойства создания кода C/C++

Включение пула строк

Компилятор создает только одну копию идентичных строк в образе программы только для чтения. Это приводит к более компактным программам, оптимизации, называемой интернизацией строк. /O1, /O2 и /ZI автоматически задают параметр /GF.

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

Включает минимальное перестроение, определяющее, следует ли перекомпилировать исходные файлы C++ с измененными определениями классов C++, хранящимися в файлах заголовков .h .

Включить исключения C++

Задает модель обработки исключений, используемую компилятором.

Варианты выбора

  • Да с исключениями SEH — модель обработки исключений, которая перехватывает асинхронные (структурированные) и синхронные исключения (C++). Наборы /EHa.
  • Да . Модель обработки исключений, которая перехватывает только исключения C++ и сообщает компилятору предположить, что внешние функции C не вызывают исключение C++. Наборы /EHsc.
  • Да, с функциями Extern C — модель обработки исключений, которая перехватывает только исключения C++ и сообщает компилятору предполагать, что функции Extern C могут выбрасывать исключения. Наборы /EHs.
  • Нет: обработка исключений отсутствует.

Проверка меньшего типа

Включите проверку преобразования в небольшие типы, несовместимые с любым типом оптимизации, кроме отладки. Наборы /RTCc.

Базовые проверки среды выполнения

Включите основные проверки ошибок среды выполнения, несовместимые с любым типом оптимизации, кроме отладки. Наборы /RTCs, /RTCu, /RTC1.

Варианты выбора

  • Кадры стека — включает проверку ошибок времени выполнения.
  • Неинициализированные переменные — сообщает, когда переменная используется без инициализации.
  • Оба (/RTC1, equiv. to /RTCsu) — эквивалент /RTCsu.
  • По умолчанию — проверки среды выполнения по умолчанию .

Библиотека времени выполнения

Укажите библиотеку времени выполнения для связывания. Наборы /MT, /MTd, /MD, /MDd.

Варианты выбора

  • Многопоточное — позволяет вашему приложению использовать многопоточную статическую версию библиотеки времени выполнения.
  • Многопоточная отладка — определяет _DEBUG и _MT. Этот параметр также приводит к тому, что компилятор помещает имя LIBCMTD.lib библиотеки в .obj файл, чтобы компоновщик использовал LIBCMTD.lib для разрешения внешних символов.
  • Библиотека DLL с несколькими потоками — заставляет ваше приложение использовать многопоточную и предназначенную для DLL версию библиотеки времени выполнения. Определяет _MT и _DLL, в результате чего компилятор помещает имя библиотеки MSVCRT.lib в файл .obj.
  • Многопоточная отладочная DLL — определяет _DEBUG, _MT и приводит к использованию в приложении отладочной версии многопоточной библиотеки времени выполнения DLL. Он также приводит к тому, что компилятор помещает имя MSVCRTD.lib библиотеки .obj в файл.

Выравнивание элементов структуры

Задает 1, 2, 4 или 8-байтовые границы для выравнивания элементов структуры. Наборы /Zp.

Варианты выбора

  • 1 Байт — упаковка структур по границам в один байт. Эквивалентно /Zp.
  • 2 байта — упаковывает структуры на двухбайтовых границах.
  • 4 байта — упаковка структур по границам в четыре байта.
  • 8 Байт — пакетирование структур по восьмибайтовым границам (по умолчанию).
  • 16 Байт — упаковывает структуры по шестнадцатибайтовым границам.
  • По умолчанию — параметры выравнивания по умолчанию .

Проверка безопасности

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

Варианты выбора

  • Отключить проверку безопасности — проверка безопасности отключается. Наборы /GS-.
  • Включить проверку безопасности — проверка безопасности включается. Наборы /GS.

Защита потока управления

Механизм контроля безопасности помогает обнаруживать попытки перенаправления в недопустимый блок кода.

Варианты выбора

  • Да . Включение проверки безопасности с помощью наборов /guard:cfguard.
  • Нет

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

Компилятор может упаковывать отдельные функции в форме упакованных функций (COMDAT). Необходимо для редактирования кода и продолжения работы. Наборы /Gy.

Включение параллельного создания кода

Позволяет компилятору создавать параллельный код для циклов, определенных с использованием #pragma loop(hint_parallel[(n)]) при включенной оптимизации.

Включение расширенного набора инструкций

Включите использование инструкций, найденных на процессорах, поддерживающих расширенные наборы инструкций. Например, улучшения SSE, SSE2, AVX и AVX2 для архитектуры IA-32. И улучшения AVX и AVX2 для x64. В настоящее время /arch:SSE и /arch:SSE2 доступны только при сборке для архитектуры x86. Если параметр не указан, компилятор использует инструкции, найденные на процессорах, поддерживающих SSE2. Использование расширенных инструкций можно отключить с помощью /arch:IA32. Дополнительные сведения см. в разделе /arch (x86), /arch (x64), /arch (ARM64), и /arch (ARM).

Варианты выбора

  • Расширения SIMD потоковой передачи — расширения SIMD потоковой передачи. Задает /arch:SSE
  • Расширения набора команд для потоковой обработки SIMD 2 — Расширения набора команд для потоковой обработки SIMD 2. Задает /arch:SSE2
  • Расширенные векторные расширения (AVX) - Расширенные векторные расширения. Задает /arch:AVX
  • Расширенные векторные расширения 2 — расширенные расширения векторов 2. Задает /arch:AVX2
  • Нет расширенных инструкций — отсутствие улучшенных инструкций Задает /arch:IA32
  • Не задано — не задано .

Включение длины вектора

Включите выбор длины вектора для /arch:AVX512 и /arch:AVX10.x флагов. Допустимые значения: 256 и 512 бит (X86/X64).

Модель с плавающей запятой

Задает модель с плавающей запятой. Наборы /fp:precise, /fp:strict, /fp:fast.

Варианты выбора

  • Точное значение — по умолчанию. Улучшает согласованность тестов с плавающей запятой для равенства и неравенства.
  • Strict — самая строгая модель с плавающей запятой. /fp:strict вызывает fp_contract быть выключенным и fenv_access быть включенным. /fp:except подразумевается и может быть отключен, явно указав /fp:except-. При использовании с /fp:except-, /fp:strict применяет строгую семантику с плавающей запятой, но без уважения к исключительным событиям.
  • Быстрое создание самого быстрого кода в большинстве случаев.

Включение исключений с плавающей запятой

Надежная модель исключений с плавающей точкой. Исключения будут вызываться немедленно после их срабатывания. Наборы /fp:except.

Создать образ с возможностью горячей перезагрузки

При включенной функции горячего исправления компилятор гарантирует, что первая инструкция каждой функции составляет ровно два байта, как требуется для этого. Наборы /hotpatch.

Устранение рисков Spectre

Смягчение последствий Spectre для CVE 2017-5753. Наборы /Qspectre.

Варианты выбора

  • Включена функция устранения рисков Spectre для CVE 2017-5753
  • Отключено — не задано.

Включить исправление ошибки Intel JCC

Программное смягчение влияния на производительность, вызванного обновлением микрокода для исправления ошибки Intel JCC. Наборы /QIntel-jcc-erratum.

Включение метаданных продолжения EH

Создает отсортированный список всех допустимых целевых объектов обработки исключений для двоичного файла, используемого во время выполнения проверки RIP. Сейчас доступно для сборок x64. Наборы /guard:ehcont.

Включение подписанных возвратов

Включает подписанные возвраты, которые помогают обнаруживать и предотвращать попытки перехода к недопустимым блокам из возвратов функции. В настоящее время доступно для сборок ARM64. Наборы /guard:signret.

Свойства языка C/C++

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

Отключает или включает расширения языка. Наборы /Za.

Обрабатывать WChar_t как встроенный тип

При указании wchar_t становится собственным типом, который сопоставляется с __wchar_t так же, как short сопоставляется с __int16. /Zc:wchar_t включен по умолчанию.

Принудительное соответствие в области цикла

Реализует стандартное поведение C++ для for циклов инструкций с расширениями Майкрософт. Наборы /Za, /Ze (Отключить языковые расширения. /Zc:forScope включен по умолчанию.

Удаление нессылаемых кода и данных

При указании компилятор больше не создает информации о символах для неиспользуемого кода и данных.

принудительное применение правил преобразования типов

Используется для идентификации типа ссылки на rvalue в результате операции приведения в соответствии со стандартом C++11.

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

Добавляет код для проверки типов объектов C++ во время выполнения (сведения о типе среды выполнения или RTTI). Наборы /GR, /GR-.

Поддержка OpenMP

Включает расширения языка OpenMP 2.0. Наборы /openmp.

Стандарт языка C++

Компилятор определяет стандарт языка C++, который нужно задействовать. Параметр по умолчанию не является стандартным, поэтому компилятор использует свое значение по умолчанию C++14. Если выбрать определенное значение, будет установлен соответствующий параметр компилятора /std.

Варианты выбора

  • По умолчанию (стандарт ISO C++14)
  • СТАНДАРТ ISO C++14 (/std:c++14)
  • СТАНДАРТ ISO C++17 (/std:c++17)
  • ISO C++20 Standard (/std:c++20)
  • Предварительная версия — СТАНДАРТ ISO C++23 (/std:c++23preview)
  • Предварительная версия — компоненты из последнего рабочего черновика C++ (/std:c++latest)

Стандарт языка C

Задает стандарт языка C, который поддерживается компилятором. Значение по умолчанию не задает стандартный параметр, поэтому компилятор использует устаревшую настройку MSVC по умолчанию. Если выбрать определенное значение, будет установлен соответствующий параметр компилятора /std.

Варианты выбора

  • По умолчанию (устаревшая версия MSVC)
  • Стандарт ISO C11 (/std:c11)
  • Стандарт ISO C17 (2018) (/std:c17)
  • Предварительная версия — функции из последнего рабочего черновика C (/std:clatest)

Режим соответствия

Включает или подавляет режим соответствия. Наборы /permissive-.

Включение экспериментальных модулей стандартной библиотеки C++

Экспериментальная поддержка модулей C++ TS и стандартных библиотек.

Создание модулей стандартной библиотеки ISO C++23

Начиная с Visual Studio 17.6, если это свойство включено, а для стандартного языка C++ задано /std:c++latestзначение , проекты Microsoft C++ автоматически находят и создают модули стандартной библиотеки ISO C++23. Это позволяет вам использовать import std или import std.compat в коде C++.

Свойства предварительно скомпилированных заголовков C/C++

Создание и использование предварительно скомпилированного заголовка

Разрешает создание или использование предварительно скомпилированного заголовка во время сборки. Наборы /Yc, /Yu.

Варианты выбора

  • Create — указывает компилятору создать предварительно скомпилированный файл заголовка (.pch) с состоянием компиляции в определенной точке.
  • Использование — указывает компилятору использовать существующий предварительно скомпилированный файл заголовка (.pch) в текущей компиляции.
  • Не используется предварительно скомпилированные заголовки . Не используется предварительно скомпилированные заголовки.

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

Указывает имя файла заголовка, используемое при создании или использовании предварительно скомпилированного файла заголовка. Наборы /Yc, /Yu.

Готовый выходной файл заголовка

Указывает путь или имя созданного предварительно скомпилированного файла заголовка. Наборы /Fp.

Свойства выходных файлов C/C++

Развернуть приписываемый источник

Создайте файл описания с расширенными атрибутами, внедренными в исходный файл. Наборы /Fx.

Вывод ассемблера

Задает содержимое выходного файла языка сборки. Наборы /FA, /FAc, /FAs, /FAcs.

Варианты выбора

  • Нет в списке. Нет в списке.
  • Список только на языке ассемблера — машинный код; .asm
  • Сборка с машинным кодом — машинный код и код сборки; .cod
  • Сборка с исходным кодом — исходный код и код сборки; .asm
  • Сборка, машинный код и источник — сборка, код компьютера и исходный код; .cod

Использование Юникода для листинга ассемблера

Вызывает создание выходного файла в формате UTF-8.

Расположение списка ASM

Указывает относительный путь или имя файла листинга ASM; это может быть файлом или каталогом. Наборы /Fa.

Имя выходного файла модуля

Расположение файла вывода модуля или единицы заголовка (BMI); может быть именем файла или каталога. Наборы /ifcOutput[name].

Имя файла зависимостей модуля

Указывает путь и (или) имя созданного файла зависимостей модуля. Наборы /scanDependencies[path].

Имя объектного файла

Задает имя, которое переопределяет имя объектного файла по умолчанию, и может быть именем файла или каталога. Наборы /Fo.

Имя файла базы данных программы

Задает имя файла PDB, созданного компилятором; также указывает базовое имя для требуемого файла IDB, созданного компилятором; может быть именем файла или каталога. Наборы /Fd.

Создание XML-файлов документации

Указывает, что компилятор должен создавать xml-файлы комментариев документации (). XDC). Наборы /doc.

Имя файла XML-документации

Указывает имя созданных XML-файлов документации; может быть именем файла или каталога. Задает /doc:<имя>.

Создание файла зависимостей источника

Создает json-файл со списком всех файлов компилятором, используемым для компиляции источника. Наборы /sourceDependencies.

Имя файла зависимостей источника

Указывает путь и (или) имя созданного файла зависимостей источника. Наборы /sourceDependencies[path].

Свойства информации о просмотре для C/C++

Включение информации о просмотре

Указывает уровень сведений о просмотре в .bsc файле. Наборы /FR.

Просмотр файла информации

Указывает необязательное имя файла сведений браузера. Задает /FR<имя>.

Свойства внешних включений C/C++

Обрабатывать файлы, включенные в угловые скобки, как внешние

Указывает, следует ли обрабатывать файлы, включенные в угловые скобки как внешние. Задайте для этого свойства значение "Да" , чтобы задать параметр компилятора /external:anglebrackets .

Уровень предупреждения внешнего заголовка

Выберите, насколько строго компилятор должен следить за ошибками в программе во внешних заголовках. Это свойство задает параметр компилятора /external:Wn . Если для этого параметра установлено "Наследовать уровень предупреждения проекта" или значение по умолчанию, другие /external настройки игнорируются.

Диагностика шаблонов во внешних заголовках

Указывает, следует ли оценивать уровень предупреждений в цепочке инстанциаций шаблона. Задайте для этого свойства значение "Да" , чтобы задать параметр компилятора /external:templates- .

Отключение анализа кода для внешних заголовков

Отключает анализ кода для внешних заголовков. Задает параметр компилятора /analyze:external- .

Набор правил анализа для внешних заголовков

Задает переопределение набора правил анализа кода для внешних заголовков. Если это не указано, используется параметр анализа кода. Задает параметр компилятора /analyze:external:ruleset path .

Дополнительные свойства C/C++

Соглашение о вызовах

Выберите соглашение о вызовах по умолчанию для вашего приложения (можно переопределить для каждой функции). Наборы /Gd, /Gr, /Gz, /Gv.

Варианты выбора

  • __cdecl — задает соглашение о вызове __cdecl для всех функций, кроме функций-членов И функций C++, помеченных __stdcall или __fastcall.
  • __fastcall — задает соглашение о вызове __fastcall для всех функций, кроме функций-членов И функций C++, помеченных __cdecl или __stdcall. Все функции __fastcall должны иметь прототипы.
  • __stdcall — задает соглашение о вызове __stdcall для всех функций, кроме функций-членов И функций C++, помеченных __cdecl или __fastcall. Все функции __stdcall должны иметь прототипы.
  • __vectorcall — указывает соглашение о вызове __vectorcall для всех функций, кроме функций-членов И функций C++, помеченных __cdecl, __fastcallили __stdcall. Все функции __vectorcall должны иметь прототипы.

Компилировать как

Выберите параметр языка компиляции для исходных файлов. Задает/TC, /TP/interface, /internalPartitionили /exportHeader параметры.

Варианты выбора

  • По умолчанию — по умолчанию.
  • Компиляция как код C (/TC) — компиляция указанных исходных файлов в виде кода C. По умолчанию файлы с расширением .c компилируются как C.
  • Компиляция как код C++ (/TP) — компиляция указанных исходных файлов в виде кода C++. По умолчанию все исходные файлы, у которых нет .c, .ixx, .cppm или .h расширения, компилируются как C++.
  • Компилируйте как код модуля C++ (/interface) — компилируйте указанные исходные файлы в виде кода модуля C++. По умолчанию файлы с расширением .ixx.cppm компилируются как код модуля C++.
  • Компилируйте как внутренний раздел модуля C++ (/internalPartition) — компилируйте указанный исходный файл как внутренний раздел модуля C++.
  • Компиляция как единица заголовка C++ (/exportHeader) — компиляция указанных исходных файлов в виде единицы заголовка C++. По умолчанию файлы с расширением .h или без расширения компилируются как единицы заголовков.

Отключение определенных предупреждений

Отключите указанные номера предупреждений. Поместите числа предупреждений в список с разделителями с запятой. Задает /wd<число>.

Принудительное включение файла

Один или несколько файлов, включенных принудительно. Задает /FI<имя>.

Принудительное использование файла

Указывает один или несколько принудительных #using файлов. Задает /FU<имя>.

Показывать включаемые файлы

Создает список включаемых файлов с выводом компилятора. Наборы /showIncludes.

Использование полных путей

Используйте полные пути в диагностических сообщениях. Наборы /FC.

Опущено имя библиотеки по умолчанию

Не включает имена библиотек по умолчанию в файлах .obj. Наборы /Zl.

Отчеты о внутренних ошибках компилятора

Примечание.

Этот параметр является устаревшим. Начиная с Windows Vista, отчеты об ошибках управляются параметрами Windows Error Reporting (WER).

Обрабатывать определенные предупреждения как ошибки

Обрабатывает конкретное предупреждение компилятора как ошибку, в которой n является предупреждением компилятора.

Дополнительные параметры

Дополнительные параметры