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


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

В этой статье описываются параметры командной строки компилятора для компилятора F#. dotnet build Команда вызывает компилятор F# в файлах проекта F#. Файлы проекта F# отмечены расширением .fsproj .

Среду компиляции также можно контролировать, задав свойства проекта. Для проектов, предназначенных для .NET Core, <OtherFlags>...</OtherFlags> свойство "Другие флаги" используется .fsprojдля указания дополнительных параметров командной строки.

Параметры компилятора в алфавитном порядке

В следующей таблице показаны параметры компилятора, перечисленные в алфавитном порядке. Некоторые параметры компилятора F# похожи на параметры компилятора C#. В этом случае предоставляется ссылка на раздел параметров компилятора C#.

Параметр компилятора Description
--allsigs Создает новый (или повторно создает существующий) файл подписи для каждого исходного файла в компиляции. Дополнительные сведения о файлах подписей см. в разделе "Подписи".
-a filename.fs Создает библиотеку из указанного файла. Этот параметр является короткой формой --target:library filename.fs.
--baseaddress:address Указывает предпочтительный базовый адрес для загрузки DLL.

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /baseaddress (параметры компилятора C#).
--codepage:id Указывает, какую кодовую страницу следует использовать во время компиляции, если требуемая страница не является текущей кодовой страницей по умолчанию для системы.

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /code pages (параметры компилятора C#).
--consolecolors Указывает, что ошибки и предупреждения используют цветной текст в консоли.
--crossoptimize[+ or -] Включает или отключает оптимизацию между модулями.
--delaysign[+|-] Задержка подписывает сборку только общедоступной частью ключа строгого имени.

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /delaysign (параметры компилятора C#).
--checked[+|-] Включает или отключает создание проверок переполнения.

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /checked (параметры компилятора C#).
--debug[+|-]

-g[+|-]

--debug:[full|pdbonly]

-g: [full|pdbonly]
Включает или отключает создание отладочной информации или задает тип отладочной информации для создания. Значение по умолчанию — это fullпозволяет подключиться к работающей программе. Выберите pdbonly , чтобы получить ограниченные сведения об отладке, хранящиеся в файле pdb (база данных программы).

Эквивалентен параметру компилятора C# того же имени. Дополнительные сведения см. в разделе

/debug (параметры компилятора C#).
--define:symbol

-d:symbol
Определяет символ для использования в условной компиляции.
--deterministic[+|-] Создает детерминированную сборку (включая GUID версии модуля и метку времени). Этот параметр нельзя использовать с подстановочными номерами версий и поддерживает только внедренные и переносимые типы отладки.
--doc:xmldoc-filename Указывает компилятору создавать примечания XML-документации к указанному файлу. Дополнительные сведения см. в разделе XML Documentation.

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /doc (параметры компилятора C#).
--fullpaths Указывает компилятору создавать полные пути.

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /fullpaths (параметры компилятора C#).
--help

-?
Отображает сведения об использовании, включая краткое описание всех параметров компилятора.
--highentropyva[+|-] Включите или отключите рандомизацию пространства адресов с высокой энтропией (ASLR), функцию повышенной безопасности. ОС случайным образом определяет расположения в памяти, где загружается инфраструктура для приложений (например, стек и куча). Если этот параметр включен, операционные системы могут использовать эту случайность для использования полного 64-разрядного адресного пространства на 64-разрядном компьютере.
--keycontainer:key-container-name Задает контейнер ключа для строгого имени.
--keyfile:filename Указывает имя файла открытого ключа для подписывания созданной сборки.
--lib:folder-name

-I:folder-name
Указывает каталог для поиска сборок, на которые ссылается ссылка.

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /lib (параметры компилятора C#).
--linkresource:resource-info Связывает указанный ресурс с сборкой. Формат сведений о ресурсе filename[name[public|private]]

Связывание одного ресурса с этим параметром является альтернативой внедрению всего файла ресурсов с параметром --resource .

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /linkresource (параметры компилятора C#).
--mlcompatibility Игнорирует предупреждения, которые отображаются при использовании функций, предназначенных для совместимости с другими версиями машинного обучения.
--noframework Отключает ссылку по умолчанию на сборку платформа .NET Framework.
--nointerfacedata Указывает компилятору опустить ресурс, который он обычно добавляет в сборку, содержащую метаданные F#.
--nologo При запуске компилятора не отображается текст баннера.
--nooptimizationdata Указывает компилятору включить только оптимизацию, необходимую для реализации встроенных конструкций. Подавляет перекрестную встраивание, но повышает совместимость двоичных файлов.
--nowin32manifest Указывает компилятору опустить манифест Win32 по умолчанию.
--nowarn:warning-number-list Отключает определенные предупреждения, перечисленные по числу. Разделите каждый номер предупреждения запятой. Вы можете обнаружить номер предупреждения для любого предупреждения из выходных данных компиляции.

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /nowarn (параметры компилятора C#).
--optimize[+|-] [optimization-option-list]

-O[+|-] [optimization-option-list]
Включает или отключает оптимизации. Некоторые параметры оптимизации можно отключить или включить выборочно, перечислив их. Это: nojitoptimize, , nojittrackingnolocaloptimize, nocrossoptimize. notailcalls
--out:output-filename

-o:output-filename
Указывает имя скомпилированной сборки или модуля.

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /out (параметры компилятора C#).
--pathmap:path=sourcePath,... Определяет способ сопоставления физических путей и выходных имен исходных путей компилятором.

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /pathmap (параметры компилятора C#).
--pdb:pdb-filename Именует выходной файл PDB (база данных программы). Этот параметр применяется только при --debug включении.

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /pdb (параметры компилятора C#).
--platform:platform-name Указывает, что созданный код будет выполняться только на указанной платформе (x86илиItaniumx64) или, если выбрано имя anycpu платформы, указывает, что созданный код может выполняться на любой платформе.

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /platform (параметры компилятора C#).
--preferreduilang:lang Задает предпочитаемое имя языка и региональных параметров языка вывода (например, es-ES, ja-JP).
--quotations-debug Указывает, что дополнительные сведения об отладке следует выдавать для выражений, производных от литерала кавычек F# и отраженных определений. Сведения об отладке добавляются в настраиваемые атрибуты узла дерева выражений F#. См . кавычки кода и expr.CustomAttributes.
--reference:assembly-filename

-r:assembly-filename
Делает код из сборки F# или платформа .NET Framework доступной для скомпилированного кода.

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /reference (параметры компилятора C#).
--resource:resource-filename Внедряет управляемый файл ресурсов в созданную сборку.

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /resource (параметры компилятора C#).
--sig:signature-filename Создает файл подписи на основе созданной сборки. Дополнительные сведения о файлах подписей см. в разделе "Подписи".
--simpleresolution Указывает, что ссылки на сборки должны разрешаться с помощью правил Mono на основе каталогов, а не разрешения MSBuild. По умолчанию используется разрешение MSBuild, за исключением случаев, когда выполняется в Mono.
--standalone Указывает, чтобы создать сборку, содержащую все его зависимости, чтобы она выполнялась самостоятельно, не требуя дополнительных сборок, таких как библиотека F#.
--staticlink:assembly-name Статически связывает данную сборку и все ссылки на библиотеки DLL, зависящие от этой сборки. Используйте имя сборки, а не имя библиотеки DLL.
--subsystemversion Указывает версию подсистемы ОС, которую будет использовать созданный исполняемый файл. Используйте 6.02 для Windows 8.1, 6.01 для Windows 7, 6.00 для Windows Vista. Этот параметр применяется только к исполняемым файлам, а не библиотекам DLL и должен использоваться только в том случае, если приложение зависит от определенных функций безопасности, доступных только в определенных версиях ОС. Если этот параметр используется, и пользователь пытается выполнить приложение в более низкой версии ОС, он завершится ошибкой с сообщением об ошибке.
--tailcalls[+|-] Включает или отключает использование инструкции tail IL, что приводит к повторному использованию кадра стека для рекурсивных функций хвоста. Этот параметр по умолчанию включен.
--target:[exe|winexe|library|module] filename Указывает тип и имя файла созданного скомпилированного кода.
  • exe означает консольное приложение.
  • winexe означает приложение Windows, которое отличается от консольного приложения, которое не имеет стандартных входных и выходных потоков (stdin, stdout и stderr).
  • library — это сборка без точки входа.
  • module— это модуль платформа .NET Framework (.netmodule), который позже можно объединить с другими модулями в сборку.
    • Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /target (параметры компилятора C#).
--times Отображает сведения о времени компиляции.
--utf8output Включает выходные данные компилятора печати в кодировке UTF-8.
--warn:warning-level Задает уровень предупреждения (от 0 до 5). Уровень по умолчанию — 3. Каждое предупреждение предоставляется на уровне на основе его серьезности. Уровень 5 дает больше, но менее серьезных предупреждений, чем уровень 1.

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /warn (параметры компилятора C#).
--warnon:warning-number-list Включите определенные предупреждения, которые могут быть отключены по умолчанию или отключены другим параметром командной строки. Список разделен запятыми.
--warnaserror[+|-] [warning-number-list] Включает или отключает параметр для отправки предупреждений в виде ошибок. Вы можете указать определенные номера предупреждений, которые будут отключены или включены. Параметры позже в командной строке переопределяют параметры ранее в командной строке. Например, чтобы указать предупреждения, которые не нужны в качестве ошибок, укажите --warnaserror+ --warnaserror-:warning-number-list.

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /warnaserror (параметры компилятора C#).
--win32manifest:manifest-filename Добавляет файл манифеста Win32 в компиляцию. Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /win32manifest (параметры компилятора C#).
--win32res:resource-filename Добавляет в компиляцию файл ресурсов Win32.

Этот параметр компилятора эквивалентен параметру компилятора C# с тем же именем. Дополнительные сведения см. в разделе /win32res ((C#) Compiler Options).

Предупреждения о согласии

Компилятор F# поддерживает несколько предупреждений о выборе:

Число Итоги Level Description
21 Проверка рекурсии во время выполнения 5 Предупреждайте, когда рекурсивное использование проверяется на инициализацию звука во время выполнения.
22 Привязки, выполненные вне порядка 5 Предупреждайте, когда рекурсивная привязка может быть выполнена вне порядка из-за ссылки на пересылку.
52 Неявные копии структур 5 Предупреждайте, когда неизменяемая структура копируется, чтобы убедиться, что исходный объект не мутируется операцией.
1178 Неявное равенство и сравнение 5 Предупреждайте, когда объявление типа F# неявно выводится NoEquality или NoComparison атрибут отсутствует в типе.
1182 Неиспользуемые переменные Н/Д Предупреждать о неиспользуемых переменных.
3180 Неявные выделения кучи Н/Д Предупреждайте, когда изменяемый локальный объект неявно выделяется как эталонная ячейка, так как она была захвачена закрытием.
3366 Нотация индекса Н/Д Предупреждать, когда используется нотация expr.[idx] индекса F# 5.
3517 Сбой InlineIfLambda Н/Д Предупреждайте, если оптимизатор F# не может встраивать InlineIfLambda значение, например если вычисляемое значение функции было предоставлено вместо явной лямбда-лямбда-функции.
3387 op_Implicit превращение Н/Д Предупреждать, когда неявное преобразование .NET используется в аргументе метода.
3388 Дополнительная неявная рассылка Н/Д Предупреждайте, когда неявно используется дополнительная рассылка, добавленная в F# 6.
3389 Неявное расширение Н/Д Предупреждайте, когда используется неявное числовое расширение.
3390 Неправильные xml-комментарии Н/Д Предупреждать, когда комментарии XML-документации неправильно сформированы различными способами.

Эти предупреждения можно включить с помощью /warnon:NNNN или <WarnOn>NNNN</WarnOn> где NNNN указан соответствующий номер предупреждения. (Вы также можете использовать синтаксис <WarnOn>FSNNNN</WarnOn>, например <WarnOn>FS3388</WarnOn>.) Обратите внимание, что если WarnOn свойство указано несколько раз, используется только последнее вхождение. Чтобы указать несколько предупреждений, укажите WarnOn свойство один раз с разделительной запятой строкой в качестве его содержимого: <WarnOn>3388,3559</WarnOn>

Заголовок Description
Параметры окна "Интерактивный F#" Описывает параметры командной строки, поддерживаемые интерпретатором F#, fsi.exe.
Справочник по свойствам проектов Описывает пользовательский интерфейс для проектов, включая страницы свойств проекта, которые предоставляют параметры сборки.