编译器选项 (F#)

本主题描述用于 F# 编译器 (fsc.exe) 的编译器命令行选项。 也可通过设置项目属性来控制编译环境。

按字母顺序列出的编译器选项

下表显示按字母顺序列出的编译器选项。 一些 F# 编译器选项会与 C# 编译器选项类似。 如果确实如此,则将提供一个指向 C# 编译器选项主题的链接。

编译器选项

说明

-a <output-filename>

用于生成库并指定库的文件名。 此选项是 --target:library <filename> 的缩写形式。

--baseaddress:<string>

用于指定要生成的库的基址。

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /baseaddress(C# 编译器选项)

--codepage:<int>

用于指定用来读取源文件的代码页。

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /codepage(C# 编译器选项)

--crossoptimize[+|-]

启用或禁用跨模块优化。

--delaysign[+|-]

用于仅使用强名称密钥的公共部分对程序集进行延迟签名。

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /delaysign(C# 编译器选项)

--checked[+|-]

用于启用或禁用溢出检查的生成。

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /checked(C# 编译器选项)

--debug[+|-]

-g[+|-]

--debug:[full|pdbonly]

-g: [full|pdbonly]

用于启用或禁用调试信息的生成,或用于指定要生成的调试信息的类型。 默认值为 full,允许附加到正在运行的程序。 选择 pdbonly 可获取存储在 pdb(程序数据库)文件中有限的调试信息。

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见

/debug (C# 编译器选项).

--define:<string>

-d:<string>

用于定义在条件编译中使用的符号。

--doc:<xmldoc-filename>

用于指示编译器为指定的文件生成 XML 文档注释。 有关更多信息,请参见 XML 文档 (F#)

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /doc(C# 编译器选项)

--fullpaths

用于指示编译器生成完全限定路径。

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /fullpaths(C# 编译器选项)

--help

-?

用于显示用法信息,包括所有编译器选项的简短说明。

--keycontainer:<string>

用于指定强名称密钥容器。

--keyfile:<filename>

用于指定用来为生成的程序集签名的公钥文件的名称。

--lib:<folder-name>

-I:<folder-name>

用于指定要从中搜索引用的程序集的目录。

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /lib(C# 编译器选项)

--linkresource:<resource-info>

用于将指定的资源链接到程序集。 resource-info 的格式为 filename[,name[,public |private]]

使用此选项链接单个资源的做法替代使用 --resource 选项嵌入整个资源文件的做法。

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /linkresource (C# 编译器选项)

--mlcompatibility

用于忽略在使用为与其他版本的 ML 兼容所设计的功能时出现的警告。

--noframework

用于禁用对 .NET Framework 程序集的默认引用。

--nointerfacedata

用于指示编译器省略其通常向包含 F# 特定元数据的程序集中添加的资源。

--nologo

在启动编译器时不显示横幅文本。

--nooptimizationdata

用于指示编译器仅包含实现内联构造所必需的优化。 将禁止跨模块内联,但会改进二进制代码的兼容性。

--nowin32manifest

用于指示编译器省略默认的 Win32 清单。

--nowarn:<int-list>

禁用按编号列出的特定警告。 将用逗号分隔每个警告编号。 可以从编译输出中找到任何警告的警告编号。

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /nowarn(C# 编译器选项)

--optimize[+|-] [<string-list>]

-O[+|-] [<string-list>]

用于启用或禁用优化。 对于一些优化选项而言,可以通过列出它们来有选择性地禁用或启用它们。 这些优化选项是:nojitoptimize、nojittracking、nolocaloptimize、nocrossoptimize 和 notailcalls。

--out:<output-filename>

-o:<output-filename>

用于指定已编译的程序集或模块的名称。

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /out(C# 编译器选项)

--pdb:<pdb-filename>

为输出调试 PDB(程序数据库)文件命名。 此选项仅在启用 --debug 时适用。

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /pdb(C# 编译器选项)

--platform:<platform-name>

用于指定生成的代码将仅在指定的平台(x86、Itanium 或 x64)上运行;如果选择了平台名称 anycpu,则用于指定生成的代码可以在任何平台上运行。

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /platform(C# 编译器选项)

--reference:<assembly-filename>

-r <assembly-filename>

用于使 F# 或 .NET 程序集中的代码可供所编译的代码使用。

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /reference(C# 编译器选项)

--resource:<resource-filename>

用于将托管资源文件嵌入到生成的程序集中。

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /resource (C# 编译器选项)

--sig:<signature-filename>

用于基于生成的程序集来生成签名文件。 有关签名文件的更多信息,请参见签名 (F#)

--simpleresolution

用于指定应使用基于目录的 Mono 规则而不是 MSBuild 解析来对程序集引用进行解析。 默认设置是使用 MSBuild 解析(在 Mono 下运行时除外)。

--standalone

指定以静态方式将 F# 库和正在编译的代码所依赖的所有引用的 DLL 链接到所生成的程序集中。

--staticlink:<assembly-name>

用于以静态方式链接给定的程序集和依赖此程序集的所有引用的 DLL。 使用程序集名称,而不是 DLL 名称。

--tailcalls[+|-]

启用或启用对尾 IL 指令的使用,尾 IL 指令将使得为尾递归函数重用堆栈帧。 默认情况下,启用此选项。

--target:[exe | winexe | library |module ] <output-filename>

用于指定生成的已编译代码的类型和文件名。

  • exe 表示一个控制台应用程序

  • winexe 表示一个 Windows 应用程序,该应用程序不同于控制台应用程序,它没有定义标准的输入/输出流(stdin、stdout 和 stderr)

  • library 是一个没有入口点的程序集

  • module 是一个 .NET 模块 (. netmodule),稍后可将此模块与其他模块一起合并到一个程序集中

  • 此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /target(C# 编译器选项)

--times

显示有关编译的计时信息。

--utf8output

用于启用以 UTF-8 编码形式打印编译器输出。

--warn:<warning-level>

设置警告等级(0 到 4)。 将根据警告的严重级别为每个警告给定一个等级。 等级 4 的警告数多于等级 0 的警告数,但前者的严重级别低于后者。

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /warn(C# 编译器选项)

--warnaserror[+|-] [<int-list>]

用于启用或禁用将警告报告为错误的选项。 可以提供要禁用或启用的具体警告编号。

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /warnaserror(C# 编译器选项)

--win32res:resource-filename

用于在编译中添加 Win32 资源文件。

此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /win32res(C# 编译器选项)

相关主题

标题

说明

F# Interactive 选项

描述 F# 解释器 (fsi.exe) 支持的命令行选项。

用户界面元素 -> 项目

描述项目的用户界面,包括用于提供生成选项的项目属性页。