Задача ClangCompile

Примечание.

Эта задача доступна только при использовании системы сборки C++.

Создает программу-оболочку для компилятора Microsoft C++ (clang.exe).

Параметры

В следующей таблице приводятся параметры задачи ClangCompile.

Параметр Описание
AdditionalIncludeDirectories Необязательный параметр типа string[].

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

Используйте -I[path].
AdditionalOptions Необязательный параметр типа string.
BufferSecurityCheck Необязательный параметр типа string.

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

Используйте fstack-protector.
BuildingInIde Необязательный параметр типа bool.
CLanguageStandard Необязательный параметр типа string.

Определяет стандарт языка C.

Используйте std=[value] со значением c89, c99, c11, gnu99 или gnu11.
ClangVersion Необязательный параметр типа string.
CompileAs Необязательный параметр типа string.

Выбор языка компиляции C-файлов и CPP-файлов. Значение по умолчанию определяется на основе расширения C или .cpp.

Используйте -x c, -x c++.
CppLanguageStandard Необязательный параметр типа string.

Определяет стандарт языка C++.

Используйте std=[value] со значением c++98, c++11, c++1y, gnu++98, gnu++11 или gnu++1y.
DataLevelLinking Необязательный параметр типа bool.

Разрешает операциям оптимизации компоновщика удалять неиспользуемые данные, порождая каждый элемент данных в отдельном разделе.
DebugInformationFormat Необязательный параметр типа string.

Определяет тип отладочной информации, создаваемой компилятором.

None — отладочная информация не создается для ускорения компиляции (используйте g0).
FullDebug — создается отладочная информация DWARF2 (используйте g2 -gdwarf-2).
LineNumber — создается только информация о номерах строк (используйте gline-tables-only).
EnableNeonCodegen Необязательный параметр типа bool.

Включает создание кода для оборудования NEON с плавающей запятой. Применимо только к архитектуре ARM.
ExceptionHandling Необязательный параметр типа string.

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

Disabled — отключение обработки исключений (используйте fno-exceptions).
Enabled — включение обработки исключений (используйте fexceptions).
UnwindTables — создает нужные статические данные, не затрагивая создаваемый код (используйте funwind-tables).
FloatABI Необязательный параметр типа string.

Параметр для выбора ABI с плавающей запятой.

soft — выходные данные компилятора содержат вызовы библиотек для операций с плавающей запятой (используйте mfloat-abi=soft).
softfp — код создается с помощью аппаратных инструкций с плавающей запятой, но с соблюдением соглашений о вызове программных операций с плавающей запятой (используйте mfloat-abi=softfp).
hard — позволяет создавать инструкции с плавающей запятой и использовать соглашения о вызовах для конкретных FPU (используйте mfloat-abi=hard).
ForcedIncludeFiles Необязательный параметр типа string[].

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

Используйте -include [name].
FunctionLevelLinking Необязательный параметр типа bool.

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

Используйте ffunction-sections.
GccToolChain Необязательный параметр типа string.

Путь к папке с цепочкой инструментов Gcc.
GNUMode Необязательный параметр типа bool.

MSCompatibility Необязательный параметр типа bool.

Включение полной совместимости с Microsoft C++.
MSCompatibilityVersion Необязательный параметр типа string.

Значение с разделителями-точками, представляющее номер версии компилятора Майкрософт, который указывается в _MSC_VER (по умолчанию 0 — не задавать значение).
MSExtensions Необязательный параметр типа bool.

Прием некоторых нестандартных конструкций, поддерживаемых компилятором корпорации Майкрософт.
MSCompilerVersion Необязательный параметр типа string.

Номер версии компилятора Майкрософт, который указывается в _MSC_VER (по умолчанию 0 — не задавать значение).
MSVCErrorReport Необязательный параметр типа bool.

Отчеты об ошибках, которые Visual Studio может проанализировать для получения данных о файле и строке.
ObjectFileName Необязательный параметр типа string.

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

Используйте /Fo[name].
OmitFramePointers Необязательный параметр типа bool.

Отменяет создание указателей на фреймы в стеке вызовов.
Оптимизация Необязательный параметр типа string.

Указывает уровень оптимизации для приложения.

Custom — настраиваемая оптимизация.
Disabled — отключить оптимизацию (используйте O0).
MinSize — оптимизировать по размеру (используйте Os).
MaxSpeed — оптимизировать по скорости (используйте O2).
Full — дорогостоящие оптимизации (используйте O3).
PositionIndependentCode Необязательный параметр типа bool.

Создать позиционно-независимый код (PIC) для использования в общей библиотеке.
PrecompiledHeader Необязательный параметр типа string.

Разрешает создание или использование предварительно скомпилированного заголовка во время сборки.
PrecompiledHeaderFile Необязательный параметр типа string.

Задает имя, используемое для файла предкомпилированных заголовков. Во время сборки этот файл будет также добавлен в принудительно включенные файлы.
PrecompiledHeaderOutputFileDirectory Необязательный параметр типа string.

Указывает каталог для создаваемого предкомпилированного заголовка. Во время сборки этот каталог также добавляется в дополнительные каталоги включаемых файлов.
PrecompiledHeaderCompileAs Необязательный параметр типа string.

Выбор языка компиляции для файла предкомпилированных заголовков.

Используйте -x c-header, -x c++-header.
PreprocessorDefinitions Необязательный параметр типа string[].

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

Используйте -D.
RuntimeLibrary Необязательный параметр типа string.

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

Используйте параметры MSVC /MT, /MTd, /MD, /MDd.

MultiThreaded — предписывает приложению использовать многопоточную, статичную версию библиотеки среды выполнения.
MultiThreadedDebug — определяет параметры _DEBUG и _MT. Этот параметр также предписывает компилятору размещение имени библиотеки LIBCMTD.lib в .obj-файле, чтобы компоновщик использовал LIBCMTD.lib для разрешения внешних символов.
MultiThreadedDLL — предписывает приложению использовать специальную многопоточную версию библиотеки среды выполнения для конкретной библиотеки DLL. Определяет параметры _MT и _DLL и предписывает компилятору размещать имя библиотеки MSVCRT.lib в OBJ-файле.
MultiThreadedDebugDLL — определяет параметры _DEBUG, _MT и_DLL и предписывает приложению использовать специальную многопоточную версию библиотеки среды выполнения для конкретной библиотеки DLL. Также предписывает компилятору размещение имени библиотеки MSVCRTD.lib в .obj-файле.
RuntimeTypeInfo Необязательный параметр типа bool.

Добавляет код для проверки типов объектов C++ во время выполнения (информация о типах времени выполнения).

Используйте frtti, fno-rtti.
ShowIncludes Необязательный параметр типа bool.

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

Используйте -H.
Источники Обязательный параметр ITaskItem[].
StrictAliasing Необязательный параметр типа bool.

Использовать самые строгие правила присвоения псевдонима. Объект одного типа никогда не будет считаться находящимся по тому же адресу, что и объект другого типа.
Sysroot Необязательный параметр типа string.

Путь к корневому каталогу с заголовками и библиотеками.
TargetArch Необязательный параметр типа string.

Целевая архитектура.
ThumbMode Необязательный параметр типа string.

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

Thumb — создание кода Thumb (используйте mthumb).
ARM — создание кода Arm (используйте marm).
Disabled — вариант недоступен для выбранной платформы.
TrackerLogDirectory Необязательный параметр типа string.

Каталог журнала отслеживания.
TreatWarningAsError Необязательный параметр типа bool.

Интерпретирует все предупреждения компилятора как ошибки.

Для нового проекта мы рекомендуем использовать параметр /WX во всех компиляциях. Разрешение всех предупреждений снизит число трудновыявляемых дефектов кода.
UndefinePreprocessorDefinitions Необязательный параметр типа string[].

Задает одну или несколько отмен определений препроцессора.

Используйте -U [macro].
UndefineAllPreprocessorDefinitions Необязательный параметр типа bool.

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

Используйте -undef.
UseMultiToolTask Необязательный параметр типа bool.

Многопроцессорная компиляция.
UseShortEnums Необязательный параметр типа bool.

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

Отображение команд для выполнения и использования подробного вывода.
WarningLevel Необязательный параметр типа string.

Выберите, как строго компилятор должен воспринимать ошибки в коде. Другие флаги следует добавлять непосредственно в раздел дополнительных параметров (используйте /w, /Weverything).

TurnOffAllWarnings — отключает все предупреждения компилятора (используйте w).
EnableAllWarnings — включает все предупреждения, в том числе отключенные по умолчанию (используйте Wall).

См. также

Справочные сведения о задачах