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


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

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

Общие

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

Оптимизация

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

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

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

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

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

Язык

Свойство Описание Варианты выбора
Включить информацию о типах времени выполнения Добавляет код для проверки типов объектов C++ во время выполнения (информация о типах времени выполнения). (frtti, fno-rtti)
Стандарт языка C Определяет стандарт языка C. По умолчанию
C89 — стандарт языка C89.
C99 — стандарт языка C99.
C11 — стандарт языка C11.
C99 (диалект GNU) — стандарт языка C99 (диалект GNU).
C11 (диалект GNU) — стандарт языка C11 (диалект GNU).
Стандарт языка C++ Определяет стандарт языка C++. По умолчанию
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])