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

Обычно Вы компилируете Металлические программы построения теней оффлайн путем добавления Металлических исходных файлов программы построения теней к проекту XCode. XCode компилирует источник программы построения теней с помощью metal инструмент командной строки, производя двоичные файлы, что Ваши загрузки приложения с помощью APIs от MTLLibrary класс. Можно также использовать Металлический компилятор онлайн — компиляцию Металлического источника программы построения теней в течение времени выполнения приложения — использование другого MTLLibrary APIs.

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

Опции препроцессора

Эти опции управляют Металлическим препроцессором, выполняющимся на каждом исходном файле программы построения теней перед компиляцией.

-D имя

Предопределяет имя как макрос, с определением 1. Эквивалентный #define name 1 в источнике программы построения теней.

-D name=definition

Маркирует и обрабатывает содержание определения, как будто они появились в a #define директива в источнике программы построения теней. Эта опция может получить многократные опции, обрабатывающиеся в порядке, в котором они появляются.

Можно использовать эту опцию измениться, какие опции программы построения теней активированы или отключены.

-I dir

Добавляет dir каталога к списку каталогов, которые будут искаться заголовочные файлы. Эта опция доступна только для оффлайнового компилятора.

Математика опции Intrinsics

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

-ffast-math

Эта опция (по умолчанию) включает оптимизацию для арифметики с плавающей точкой, которая может нарушить стандарт IEEE 754. Это также отключает вариант высокой точности математических функций для одинарной точности скалярные и типы векторов с плавающей точкой. -ffast-math значение по умолчанию.

-fno-fast-math

Эта опция является противоположностью -ffast-math. Это отключает оптимизацию для арифметики с плавающей точкой, которая может нарушить стандарт IEEE 754. Это также включает вариант высокой точности математических функций для одинарной точности скалярные и типы векторов с плавающей точкой.

Металлическая стандартная библиотека обеспечивает и быстрые и точные варианты математических функций в metal::precise и metal::fast вложенные пространства имен. Когда -ffast-math указан, эти функции используют быстрые варианты по умолчанию (и можно вызвать функцию с precise:: снабдите префиксом для использования точного варианта вместо этого). Когда -fno-fast-math указан, функции используют точные варианты по умолчанию (и можно вызвать функцию с fast:: снабдите префиксом для использования быстрого варианта вместо этого). См. Перечисление 5-1 для примеров.

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

Следующие опции доступны:

-Werror

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

-W

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