共用方式為


編譯器選項 (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>

將指定的資源連結至該組件。 資源資訊的格式為 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# 編譯器選項)

--quotations-debug

指定衍生自 F# 引號常值及反映定義的運算式應發出額外的偵錯資訊。 偵錯資訊會加入至 F# 運算式樹狀節點的自訂屬性。 請參閱 程式碼引號 (F#)Expr.CustomAttributes

--reference:<assembly-filename>

-r <assembly-filename>

讓編譯中的程式碼可以存取 F# 或 .NET Framework 組件的程式碼。

這個編譯器選項相當於相同名稱的 C# 編譯器選項。 如需詳細資訊,請參閱/reference (C# 編譯器選項)

--resource:<resource-filename>

將 Managed 資源檔內嵌到產生的組件中。

這個編譯器選項相當於相同名稱的 C# 編譯器選項。 如需詳細資訊,請參閱/resource (C# 編譯器選項)

--sig:<signature-filename>

根據產生的組件產生簽章檔。 如需簽章檔的詳細資訊,請參閱簽章 (F#)

--simpleresolution

指定應該使用目錄型 Mono 規則來解析組件參考,而非 MSBuild 解析。 預設值是使用 MSBuild 解析,但不含在 Mono 下執行時。

--standalone

指定要產生包含其所有相依性的組件,使其獨立執行,而不需要其他組件,例如 F# 程式庫。

--staticlink:<assembly-name>

靜態連結指定的組件以及相依於此組件的所有參考 DLL。 請使用組件名稱,而非 DLL 名稱。

--subsystemversion

指定要由產生的可執行檔使用之作業系統子系統的版本。 Windows 8 使用 6.02,Windows 7 使用 6.01,Windows Vista 使用 6.00。 這個選項只適用於可執行檔,而不是 DLL,而且只有在您的應用程式依賴作業系統的特定版本提供的特定安全性功能時才需要使用。 如果使用此選項,且使用者嘗試在較低版本的作業系統上執行您的應用程式,則會失敗並產生錯誤訊息。

--tailcalls[+|-]

啟用或停用尾端 (Tail) IL 指令的用法,此用法會導致尾端遞迴函式重複使用堆疊框架。 這個選項預設為啟用。

--target:[exe | winexe | library | module ] <output-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 還要多但較不嚴重的警告。

層級 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 支援的命令列選項。

專案設計工具使用者介面參考

說明專案的 UI,包括會提供建置選項的專案屬性頁。