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


Свойства C/C++ (Linux)

Поддержка Linux реализована в Visual Studio версии 2017 и выше.

Общие сведения

Свойство Описание Варианты
Дополнительные каталоги включаемых файлов Добавляет один или несколько каталогов для добавление к пути включения. Для разделения каталогов используйте точку с запятой. (-I[path]).
Формат отладочной информации Определяет тип отладочной информации, создаваемой компилятором. Нет — отладочная информация не создается для ускорения компиляции.
Минимальные сведения об отладке — создание минимальных сведений об отладке.
Полная отладочная информация (DWARF2) — создание отладочной информации DWARF2.
Имя объектного файла Определяет имя, переопределяющее имя объектного файла по умолчанию. Это может быть имя файла или каталога. (-o [name]).
Уровень предупреждений Выберите, как строго компилятор должен оценивать ошибки в коде. Добавьте другие флаги непосредственно в разделе Дополнительные параметры. (/w, /Weverything). Отключить все предупреждения — отключает все предупреждения компилятора.
Включить все предупреждения — включает все предупреждения, в том числе предупреждения, отключенные по умолчанию.
Обрабатывать предупреждения как ошибки Интерпретирует все предупреждения компилятора как ошибки. Для нового проекта, вероятно, лучше всего использовать /Werror во всех компиляциях. Обработайте все предупреждения, чтобы устранить сложные в поиске ошибки в коде.
Дополнительные предупреждения C Определяет набор дополнительных предупреждений.
Дополнительные предупреждения C++ Определяет набор дополнительных предупреждений.
Включить подробный режим При включении подробного режима выводится более подробная информация для диагностики сборки.
Компилятор C Задает программу, вызываемую при компиляции файлов исходного кода C, или путь к компилятору C в удаленной системе.
Компилятор C++ Задает программу, вызываемую при компиляции файлов исходного кода C++, или путь к компилятору C++ в удаленной системе.
Время ожидания компиляции Время ожидания удаленной компиляции (в миллисекундах).
Копировать объектные файлы Указывает, следует ли копировать скомпилированные объектные файлы с удаленной системы на локальный компьютер.
Максимальное количество параллельных заданий компиляции Количество процессов, создаваемых параллельно во время компиляции. Значение по умолчанию — 1. Если вы используете подсистему Windows для Linux (WSL) версии 1, ограничение составляет 64.
Проверить архитектуру Указывает на необходимость проверки соответствия платформы, для которой предназначен проект, платформе удаленной системы.
Включить санитайзер адресов Скомпилируйте программу с помощью санитайзера адресов, который предназначен для обнаружения ошибок в памяти и позволяет находить такие проблемы во время выполнения, как использование после высвобождения, и выполнять проверки вне допустимого диапазона.

Optimization

Свойство Описание Варианты
Optimization Указывает уровень оптимизации для приложения. Настраиваемый — настраиваемая оптимизация.
Отключено — отключить оптимизацию.
Минимизировать размер — оптимизировать по размеру.
Максимизировать скорость — оптимизировать по скорости.
Полная оптимизация — дорогостоящие оптимизации.
Строгое присвоение псевдонима Предполагает использование самых строгих правил присвоения псевдонимов. Объект одного типа никогда не будет считаться таким, который находится по тому же адресу, что и объект другого типа.
Развернуть циклы Развертывает циклы, чтобы приложение работало быстрее благодаря сокращению выполняемых ветвей за счет увеличения размера кода.
Оптимизация времени компоновки Включает межпроцедурную оптимизацию, разрешая оптимизатору просматривать объектные файлы в приложении.
Опустить указатель на фреймы Отменяет создание указателей на фреймы в стеке вызовов.
Нет общих блоков Выделяет неинициализированные глобальные переменные в разделе данных объектного файла, вместо того чтобы создавать их в виде общих блоков

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

Свойство Описание
Определения препроцессора Определяет символы предобработки для исходного файла. (-D)
Отменить определения препроцессора Задает одну или несколько отмен определений препроцессора. (-U [macro])
Отменить все определения препроцессора Отменяет все объявленные ранее определения препроцессора. (-undef)
Показывать включаемые файлы Создает список включаемых файлов с выводом компилятора. (-H)

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

Свойство Описание Варианты
Позиционно-независимый код Создает позиционно-независимый код для использования в общей библиотеке.
Статические элементы являются потокобезопасными Выделяет дополнительный код для использования процедур, указанных в ABI C++, для потокобезопасной инициализации локальных статических элементов. Нет — отключение потокобезопасных статических элементов.
Да — включение потокобезопасных статических элементов.
Оптимизация операций с плавающей запятой Разрешает оптимизацию операций с плавающей запятой, послабляя требование соответствовать спецификации IEEE-754.
Встроенные методы скрыты Когда включено, смещенные копии встроенных методов объявляются как private extern.
Символы скрыты по умолчанию Все символы объявляются как private extern, кроме явным образом помеченных для экспорта с помощью макроса __attribute.
Включить исключения C++ Определяет модель обработки исключений, используемую компилятором. Нет — отключение обработки исключений.
Да — включение обработки исключений.

Язык

Свойство Описание Варианты
Включить информацию о типах времени выполнения Добавляет код для проверки типов объектов C++ во время выполнения (информация о типах времени выполнения). (frtti, fno-rtti)
Стандарт языка C Определяет стандарт языка C. Default
C89 — стандарт языка C89.
C99 — стандарт языка C99.
C11 — стандарт языка C11.
C99 (диалект GNU) — стандарт языка C99 (диалект GNU).
C11 (диалект GNU) — стандарт языка C11 (диалект GNU).
Стандарт языка C++ Определяет стандарт языка C++. Default
C++03 — стандарт языка C++03.
C++11 — стандарт языка C++11.
C++14 — стандарт языка C++14.
C++03 (диалект GNU) — стандарт языка C++03 (диалект GNU).
C++11 (диалект GNU) — стандарт языка C++11 (диалект GNU).
C++14 (диалект GNU) — стандарт языка C++14 (диалект GNU).

Дополнительно

Свойство Описание Варианты
Компилировать как Выбирает язык компиляции файлов .c и .cpp. (-x c, -x c++) По умолчанию — определение производится по расширениям .c или .cpp.
Компилировать как код C — компиляция в качестве кода C.
Компилировать как код C++ — компиляция в качестве кода C++.
Принудительно включенные файлы Определяет один или несколько принудительно включенных файлов (-include [name])