编译器选项 (F#)

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

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

下表显示按字母顺序列出的编译器选项。 一些 F# 编译器选项会与 C# 编译器选项类似。 在这种情况下,提供了指向 C# 编译器选项主题的链接。

编译器选项

说明

-a <output-filename>

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

--baseaddress:<string>

指定要生成的库的基址。

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

--codepage:<int>

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

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

--consolecolors

指定的错误和警告在控制台上使用用颜色标记的文本。

--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

-?

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

--highentropyva[+|-]

启用或禁用高熵地址空间布局随机化 (ASLR),增强的安全功能。 操作系统随机内存中的位置加载的应用程序 (如堆栈和堆) 的基础架构的位置。 如果启用此选项时,操作系统可用于此随机选择 64 位计算机上使用完全 64 位地址空间。

--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 框架程序集。

--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

指定应使用基于目录的单声道的规则,而不是 MSBuild 分辨率解析程序集引用。 默认设置是使用 MSBuild 解析(在 Mono 下运行时除外)。

--standalone

指定产生包含其所有依赖项,以便使其运行本身,而不需要其他程序集,例如 F# 库的程序集。

--staticlink:<assembly-name>

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

--subsystemversion

指定要使用的生成可执行文件的操作系统子系统的版本。 使用为 6.02 Windows 8,windows 7,适用于 Windows Vista 6.00 6.01。 此选项仅适用于可执行文件,不是 Dll,并且,才需要使用如果您的应用程序依赖于特定的安全功能仅在某些版本的操作系统上可用。 如果使用此选项,并且用户尝试执行较低版本的操作系统上的应用程序,它将失败并显示错误消息。

--tailcalls[+|-]

启用或禁用尾部 IL 指令,这会导致可以重复用于尾部递归函数的堆栈帧的使用。 默认情况下,启用此选项。

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

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

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

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

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

  • module是。NET 框架模块 (。 netmodule),它可以以后再结合其他模块为程序集。

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

--times

显示用于编译的计时信息。

--utf8output

启用打印编译器输出中的 utf-8 编码。

--warn:<warning-level>

设置警告等级 (0 到 5)。 默认级别为 3。 将根据警告的严重级别为每个警告给定一个等级。 第 5 级提供多个但更少的严重,警告比第 1 级。

第 5 级警告: (在运行时检查使用递归) 21、 22 (let rec计算出的顺序),45 (完全抽象) 和 52 (防御副本)。 所有其他警告是级别 2。

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

--warnon:<int-list>

启用特定的警告,默认情况下可能处于关闭状态或另一个命令行选项被禁用。 在 F# 3.0 中,只有 1182 (未使用的变量) 警告默认是关闭的。

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

启用或禁用报告警告视为错误的选项。 可以提供要禁用或启用的具体警告编号。 在命令行的后面部分的选项重写前面的命令行中的选项。 例如,若要指定不希望报告为错误的警告,请指定--warnaserror+ --warnaserror-:<int-list>。

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

--win32manifest:manifest-filename

添加到编译的 Win32 清单文件。 此编译器选项与同名的 C# 编译器选项等效。 有关更多信息,请参见 /win32manifest(C# 编译器选项)

--win32res:resource-filename

将 Win32 资源文件添加到编译。

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

相关主题

标题

说明

F# Interactive 选项

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

项目设计器用户界面参考

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