Sdílet prostřednictvím


Možnosti kompilátoru

Tento článek popisuje možnosti příkazového řádku kompilátoru pro kompilátor jazyka F#. dotnet build Příkaz vyvolá kompilátor jazyka F# v souborech projektu jazyka F#. Soubory projektu F# jsou zaznamenány s příponou .fsproj .

Prostředí kompilace je také možné řídit nastavením vlastností projektu. U projektů, které cílí na .NET Core, se vlastnost <OtherFlags>...</OtherFlags> .fsproj"Jiné příznaky" používá k určení dalších možností příkazového řádku.

Možnosti kompilátoru (abecední pořadí)

V následující tabulce jsou uvedeny možnosti kompilátoru uvedené abecedně. Některé z možností kompilátoru jazyka F# jsou podobné možnostem kompilátoru jazyka C#. V takovém případě je k dispozici odkaz na téma možností kompilátoru jazyka C#.

Možnost kompilátoru Popis
--allsigs Vygeneruje nový (nebo znovu vygeneruje existující) soubor podpisu pro každý zdrojový soubor v kompilaci. Další informace o souborech podpisů najdete v tématu Podpisy.
-a filename.fs Vygeneruje knihovnu ze zadaného souboru. Tato možnost je krátká forma --target:library filename.fs.
--baseaddress:address Určuje upřednostňovanou základní adresu, pro kterou se má načíst knihovna DLL.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu /baseaddress (možnosti kompilátoru jazyka C#).
--codepage:id Určuje, kterou znakovou stránku použít během kompilace, pokud požadovaná stránka není aktuální výchozí znakovou stránkou systému.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu /kódové stránky (možnosti kompilátoru jazyka C#).
--consolecolors Určuje, že chyby a upozornění používají v konzole barevně kódovaný text.
--crossoptimize[+ or -] Povolí nebo zakáže optimalizace mezi moduly.
--delaysign[+|-] Zpoždění podepíše sestavení pouze pomocí veřejné části klíče silného názvu.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu /delaysign (možnosti kompilátoru jazyka C#).a0>
--checked[+|-] Povolí nebo zakáže generování kontrol přetečení.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu /checked (možnosti kompilátoru jazyka C#).
--debug[+|-]

-g[+|-]

--debug:[full|pdbonly]

-g: [full|pdbonly]
Povolí nebo zakáže generování informací o ladění nebo určuje typ informací o ladění, které se mají vygenerovat. Výchozí hodnota je full, která umožňuje připojení ke spuštěné aplikaci. Zvolte pdbonly , jestli chcete získat omezené informace o ladění uložené v souboru pdb (databáze programu).

Ekvivalent možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu

/debug (možnosti kompilátoru jazyka C#).
--define:symbol

-d:symbol
Definuje symbol pro použití v podmíněné kompilaci.
--deterministic[+|-] Vytvoří deterministické sestavení (včetně identifikátoru GUID verze modulu a časového razítka). Tuto možnost nelze použít s čísly verzí se zástupnými čísly a podporuje pouze vložené a přenosné typy ladění.
--doc:xmldoc-filename Dává kompilátoru pokyn, aby do zadaného souboru vygeneroval komentáře dokumentace XML. Další informace naleznete v dokumentaci XML.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu /doc (možnosti kompilátoru jazyka C#).a0>
--fullpaths Dává kompilátoru pokyn, aby vygeneroval plně kvalifikované cesty.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu /fullpaths (možnosti kompilátoru jazyka C#).
--help

-?
Zobrazí informace o využití, včetně stručného popisu všech možností kompilátoru.
--highentropyva[+|-] Povolení nebo zakázání náhodného rozložení adresního prostoru s vysokou entropií (ASLR), funkce rozšířeného zabezpečení Operační systém náhodně načte umístění v paměti, kde se načtou infrastruktura pro aplikace (například zásobník a halda). Pokud tuto možnost povolíte, operační systémy můžou tuto náhodnost použít k použití 64bitového adresního prostoru na 64bitovém počítači.
--keycontainer:key-container-name Určuje kontejner klíče silného názvu.
--keyfile:filename Určuje název souboru veřejného klíče pro podepsání vygenerovaného sestavení.
--lib:folder-name

-I:folder-name
Určuje adresář, který se má vyhledat pro sestavení, na která se odkazuje.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu /lib (možnosti kompilátoru jazyka C#).
--linkresource:resource-info Pro propojení zadaného prostředku se sestavením. Formát informací o prostředcích je filename[name[public|private]]

Propojení jednoho prostředku s touto možností je alternativou k vložení celého souboru prostředků s --resource možností.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu /linkresource (možnosti kompilátoru jazyka C#).
--mlcompatibility Ignoruje upozornění, která se zobrazí při použití funkcí navržených pro kompatibilitu s jinými verzemi ML.
--noframework Zakáže výchozí odkaz na sestavení .NET Framework.
--nointerfacedata Dává kompilátoru pokyn, aby vynechal prostředek, který obvykle přidává do sestavení, které obsahuje metadata specifická pro F#.
--nologo Při spuštění kompilátoru se nezobrazuje text banneru.
--nooptimizationdata Dává kompilátoru pokyn, aby zahrnoval pouze optimalizaci nezbytnou pro implementaci vložených konstruktorů. Inhibuje inlinování mezi moduly, ale zlepšuje binární kompatibilitu.
--nowin32manifest Dává kompilátoru pokyn, aby vynechal výchozí manifest Win32.
--nowarn:warning-number-list Zakáže konkrétní upozornění uvedená podle čísla. Každé číslo upozornění oddělte čárkou. Číslo upozornění můžete zjistit z výstupu kompilace.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu /nowarn (možnosti kompilátoru jazyka C#).
--optimize[+|-] [optimization-option-list]

-O[+|-] [optimization-option-list]
Povolí nebo zakáže optimalizace. Některé možnosti optimalizace je možné zakázat nebo povolit selektivně jejich výpisem. Toto jsou: nojitoptimize, nojittracking, nolocaloptimize, nocrossoptimize, notailcalls.
--out:output-filename

-o:output-filename
Určuje název zkompilovaného sestavení nebo modulu.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu /out (možnosti kompilátoru jazyka C#).
--pathmap:path=sourcePath,... Určuje způsob mapování fyzických cest na názvy zdrojových cest výstupem kompilátoru.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace naleznete v tématu /pathmap (možnosti kompilátoru jazyka C#).
--pdb:pdb-filename Pojmenuje výstupní ladicí soubor PDB (programová databáze). Tato možnost platí jenom v případě, že --debug je povolená.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu /pdb (možnosti kompilátoru jazyka C#).
--platform:platform-name Určuje, že vygenerovaný kód se bude spouštět pouze na zadané platformě (x86Itanium, nebo x64) nebo, pokud je zvolen název anycpu platformy, určuje, že vygenerovaný kód může běžet na libovolné platformě.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu /platform (možnosti kompilátoru jazyka C#).
--preferreduilang:lang Určuje upřednostňovaný název jazykové verze jazyka výstupu (například es-ES, ja-JP).
--quotations-debug Určuje, že by se měly pro výrazy odvozené z uvozovek F# generovat dodatečné informace o ladění a promítat definice. Ladicí informace se přidají do vlastních atributů uzlu stromu výrazů jazyka F#. Viz Citace kódu a Výraz.CustomAttributes.
--reference:assembly-filename

-r:assembly-filename
Zpřístupňuje kód z sestavení F# nebo .NET Framework pro zkompilovaný kód.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace naleznete v tématu /reference (možnosti kompilátoru jazyka C#).
--resource:resource-filename Vloží spravovaný soubor prostředků do vygenerovaného sestavení.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu /resource (možnosti kompilátoru jazyka C#).a0>
--sig:signature-filename Vygeneruje soubor podpisu na základě vygenerovaného sestavení. Další informace o souborech podpisů najdete v tématu Podpisy.
--simpleresolution Určuje, že odkazy na sestavení by se měly přeložit pomocí pravidel Mono založených na adresáři, nikoli pomocí překladu nástroje MSBuild. Výchozí hodnota je použití překladu MSBuild s výjimkou spuštění v mono.
--standalone Určuje, že se vytvoří sestavení, které obsahuje všechny jeho závislosti, aby se spustilo samostatně, aniž by bylo nutné provádět další sestavení, například knihovnu jazyka F#.
--staticlink:assembly-name Staticky propojuje dané sestavení a všechny odkazované knihovny DLL, které závisí na tomto sestavení. Použijte název sestavení, nikoli název knihovny DLL.
--subsystemversion Určuje verzi subsystému operačního systému, který má být používán vygenerovaným spustitelným souborem. Použijte 6.02 pro Windows 8.1, 6.01 pro Windows 7, 6.00 pro Windows Vista. Tato možnost se vztahuje pouze na spustitelné soubory, nikoli knihovny DLL, a je potřeba ji použít pouze v případě, že vaše aplikace závisí na konkrétních funkcích zabezpečení dostupných jenom na určitých verzích operačního systému. Pokud se tato možnost použije a uživatel se pokusí spustit aplikaci v nižší verzi operačního systému, selže s chybovou zprávou.
--tailcalls[+|-] Povolí nebo zakáže použití koncové instrukce IL, což způsobí opakované použití rámečku zásobníku pro koncové rekurzivní funkce. Tato možnost je ve výchozím nastavení povolená.
--target:[exe|winexe|library|module] filename Určuje typ a název souboru vygenerovaného kompilovaného kódu.
  • exe znamená konzolovou aplikaci.
  • winexe znamená aplikaci systému Windows, která se liší od konzolové aplikace v tom, že nemá definované standardní vstupní a výstupní datové proudy (stdin, stdout a stderr).
  • library je sestavení bez vstupního bodu.
  • module je modul .NET Framework (.netmodule), který lze později kombinovat s jinými moduly do sestavení.
--times Zobrazí informace o časování pro kompilaci.
--utf8output Povolí tisk výstupu kompilátoru v kódování UTF-8.
--warn:warning-level Nastaví úroveň upozornění (0 až 5). Výchozí úroveň je 3. Každé upozornění má úroveň na základě závažnosti. Úroveň 5 poskytuje více, ale méně závažná upozornění než úroveň 1.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu /warn (možnosti kompilátoru jazyka C#).
--warnon:warning-number-list Povolte konkrétní upozornění, která můžou být ve výchozím nastavení vypnutá nebo zakázána jinou možností příkazového řádku. Seznam je oddělený čárkami.
--warnaserror[+|-] [warning-number-list] Povolí nebo zakáže možnost hlásit upozornění jako chyby. Můžete zadat konkrétní čísla upozornění, která se mají zakázat nebo povolit. Možnosti později v příkazovém řádku přepíší možnosti dříve v příkazovém řádku. Pokud chcete například zadat upozornění, která nechcete oznamovat jako chyby, zadejte --warnaserror+ --warnaserror-:warning-number-list.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu /warnaserror (možnosti kompilátoru jazyka C#).
--win32manifest:manifest-filename Přidá do kompilace soubor manifestu Win32. Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu /win32manifest (možnosti kompilátoru jazyka C#).
--win32res:resource-filename Přidá do kompilace soubor prostředků Win32.

Tato možnost kompilátoru je ekvivalentní možnosti kompilátoru jazyka C# se stejným názvem. Další informace najdete v tématu /win32res ((C#) Možnosti kompilátoru).

Upozornění výslovného souhlasu

Kompilátor jazyka F# podporuje několik upozornění s výslovným souhlasem:

Počet Shrnutí Level Popis
21 Rekurze kontrolována za běhu 5 Upozornit, když je při rekurzivním použití kontrolována inicializace zvuku za běhu.
22 Vazby se spustily mimo pořadí 5 Upozornit, když může být rekurzivní vazba spuštěna mimo pořadí kvůli předávacímu odkazu.
52 Implicitní kopie struktur 5 Upozornit, když je zkopírovaná neměnná struktura, aby se zajistilo, že původní objekt není mutován operací.
1178 Implicitní rovnost/porovnání 5 Upozornit, pokud je deklarace typu jazyka F# implicitně odvozena jako NoEquality nebo NoComparison ale atribut není k dispozici u typu.
1182 Nepoužité proměnné Není k dispozici Upozornit na nepoužívané proměnné
3180 Implicitní přidělení haldy Není k dispozici Upozornit, když je proměnlivý místní objekt implicitně přidělen jako referenční buňka, protože byl zachycen uzavřením.
3366 Zápis indexu Není k dispozici Upozornit při použití zápisu expr.[idx] indexu F# 5.
3517 Chyba InlineIfLambda Není k dispozici Upozornit, když optimalizátor F# nenasadí InlineIfLambda hodnotu, například pokud byla zadána vypočítaná hodnota funkce místo explicitního lambda.
3387 op_Implicit přeměna Není k dispozici Upozornit, když se v argumentu metody použije implicitní převod .NET.
3388 Další implicitní upcast Není k dispozici Upozornění při implicitní použití dalšího upcastu přidaného v jazyce F# 6
3389 Implicitní rozšíření Není k dispozici Upozornit, když se použije implicitní rozšíření čísel.
3390 Komentáře dokumentu XML s poškozeným formátem Není k dispozici Upozornit, když jsou komentáře dokumentu XML špatně formátovány různými způsoby.

Tato upozornění můžete povolit pomocí /warnon:NNNN příslušného čísla upozornění nebo <WarnOn>NNNN</WarnOn> tam, kde NNNN je příslušné číslo upozornění. (Můžete také použít syntaxi <WarnOn>FSNNNN</WarnOn>, např. <WarnOn>FS3388</WarnOn>.) Všimněte si, že pokud WarnOn je vlastnost zadána vícekrát, použije se pouze poslední výskyt. Chcete-li zadat více upozornění, zadejte WarnOn vlastnost jednou s řetězcem odděleným čárkami jako jeho obsah: <WarnOn>3388,3559</WarnOn>.

Titulek Popis
Možnosti F# Interactive Popisuje možnosti příkazového řádku podporované interpretem jazyka F# fsi.exe.
Referenční dokumentace k vlastnostem projektu Popisuje uživatelské rozhraní pro projekty, včetně stránek vlastností projektu, které poskytují možnosti sestavení.