Compileropties
In dit artikel worden opdrachtregelopties voor de compiler voor de F#-compiler beschreven. Met de opdracht dotnet build
wordt de F#-compiler op F#-projectbestanden aangeroepen. F#-projectbestanden worden vermeld met de .fsproj
extensie.
De compilatieomgeving kan ook worden beheerd door de projecteigenschappen in te stellen. Voor projecten die gericht zijn op .NET Core, wordt de eigenschap Overige vlaggen, <OtherFlags>...</OtherFlags>
in .fsproj
, gebruikt voor het opgeven van extra opdrachtregelopties.
Opties voor compileren die alfabetisch worden vermeld
In de volgende tabel ziet u de compileropties die alfabetisch worden vermeld. Sommige van de F#-compileropties zijn vergelijkbaar met de C#-compileropties. Als dat het geval is, wordt er een koppeling naar het onderwerp C#-compileropties opgegeven.
Compileroptie | Beschrijving |
---|---|
--allsigs |
Hiermee genereert u een nieuw handtekeningbestand (of genereert u een bestaand) handtekeningbestand voor elk bronbestand in de compilatie. Zie Handtekeningen voor meer informatie over handtekeningbestanden. |
-a filename.fs |
Hiermee wordt een bibliotheek gegenereerd op basis van het opgegeven bestand. Deze optie is een korte vorm van --target:library filename.fs . |
--baseaddress:address |
Hiermee geeft u het voorkeursbasisadres waarop een DLL moet worden geladen. Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /baseaddress (C#-compileropties) voor meer informatie. |
--codepage:id |
Hiermee geeft u op welke codepagina tijdens de compilatie moet worden gebruikt als de vereiste pagina niet de huidige standaardcodepagina voor het systeem is. Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /codepagina's (C#-compileropties) voor meer informatie. |
--consolecolors |
Hiermee geeft u op dat fouten en waarschuwingen kleurgecodeerde tekst op de console gebruiken. |
--crossoptimize[+ or -] |
Hiermee schakelt u optimalisaties voor meerdere modules in of uit. |
--delaysign[+|-] |
Vertraging ondertekent de assembly met alleen het openbare gedeelte van de sterke naamsleutel. Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /delaysign (C#-compileropties) voor meer informatie. |
--checked[+|-] |
Hiermee schakelt u het genereren van overloopcontroles in of uit. Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /checked (C# Compiler Options)voor meer informatie. |
--debug[+|-] -g[+|-] --debug:[full|pdbonly] -g: [full|pdbonly] |
Hiermee schakelt u het genereren van foutopsporingsgegevens in of uit, of geeft u het type foutopsporingsgegevens op dat moet worden gegenereerd. De standaardwaarde is full , waarmee u een actief programma kunt koppelen. Kies ervoor pdbonly om beperkte foutopsporingsgegevens op te halen die zijn opgeslagen in een pdb-bestand (programmadatabase).Komt overeen met de C#-compileroptie van dezelfde naam. Zie voor meer informatie /foutopsporing (C#-compileropties). |
--define:symbol -d:symbol |
Hiermee definieert u een symbool voor gebruik in voorwaardelijke compilatie. |
--deterministic[+|-] |
Produceert een deterministische assembly (inclusief GUID van moduleversie en tijdstempel). Deze optie kan niet worden gebruikt met versienummers met jokertekens en ondersteunt alleen ingesloten en draagbare foutopsporingstypen |
--doc:xmldoc-filename |
Hiermee wordt de compiler geïnstrueerd om xml-documentatieopmerkingen te genereren voor het opgegeven bestand. Zie xml-documentatie voor meer informatie. Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /doc (C#-compileropties) voor meer informatie. |
--fullpaths |
Hiermee wordt de compiler geïnstrueerd om volledig gekwalificeerde paden te genereren. Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /fullpaths (C# Compiler Options)voor meer informatie. |
--help -? |
Geeft gebruiksgegevens weer, inclusief een korte beschrijving van alle compileropties. |
--highentropyva[+|-] |
Een verbeterde beveiligingsfunctie in- of uitschakelen voor randomisatie van de indeling van de adresruimte met hoge entropie (ASLR). Het besturingssysteem randomiseert de locaties in het geheugen waar infrastructuur voor toepassingen (zoals de stack en heap) wordt geladen. Als u deze optie inschakelt, kunnen besturingssystemen deze randomisatie gebruiken om de volledige 64-bits adresruimte op een 64-bits computer te gebruiken. |
--keycontainer:key-container-name |
Hiermee geeft u een sterke naam sleutelcontainer. |
--keyfile:filename |
Hiermee geeft u de naam van een openbare-sleutelbestand voor het ondertekenen van de gegenereerde assembly. |
--lib:folder-name -I:folder-name |
Hiermee geeft u een map die moet worden gezocht naar assembly's waarnaar wordt verwezen. Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /lib (C# Compiler Options)voor meer informatie. |
--linkresource:resource-info |
Hiermee koppelt u een opgegeven resource aan de assembly. De indeling van resourcegegevens is filename[name[public|private]] Het koppelen van één resource met deze optie is een alternatief voor het insluiten van een volledig resourcebestand met de --resource optie.Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /linkresource (C#-compileropties) voor meer informatie. |
--mlcompatibility |
Hiermee worden waarschuwingen genegeerd die worden weergegeven wanneer u functies gebruikt die zijn ontworpen voor compatibiliteit met andere versies van ML. |
--noframework |
Hiermee wordt de standaardreferentie naar de .NET Framework-assembly uitgeschakeld. |
--nointerfacedata |
Hiermee wordt de compiler geïnstrueerd om de resource weg te laten die deze normaal gesproken toevoegt aan een assembly die F#-specifieke metagegevens bevat. |
--nologo |
De bannertekst wordt niet weergegeven bij het starten van de compiler. |
--nooptimizationdata |
Hiermee wordt de compiler geïnstrueerd om alleen optimalisatie essentieel voor het implementeren van inline-constructies op te nemen. Remt de inlining van meerdere modules, maar verbetert de binaire compatibiliteit. |
--nowin32manifest |
Hiermee wordt de compiler geïnstrueerd om het standaard Win32-manifest weg te laten. |
--nowarn:warning-number-list |
Hiermee schakelt u specifieke waarschuwingen uit die worden vermeld op getal. Scheid elk waarschuwingsnummer door een komma. U kunt het waarschuwingsnummer voor elke waarschuwing uit de compilatie-uitvoer detecteren. Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /nowarn (C#-compileropties) voor meer informatie. |
--optimize[+|-] [optimization-option-list] -O[+|-] [optimization-option-list] |
Hiermee schakelt u optimalisaties in of uit. Sommige optimalisatieopties kunnen selectief worden uitgeschakeld of ingeschakeld door ze te vermelden. Dit zijn: nojitoptimize , nojittracking , nolocaloptimize , , nocrossoptimize . notailcalls |
--out:output-filename -o:output-filename |
Hiermee geeft u de naam van de gecompileerde assembly of module. Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /out (C#-compileropties) voor meer informatie. |
--pathmap:path=sourcePath,... |
Hiermee geeft u op hoe fysieke paden worden toegewezen aan bronpadnamen die door de compiler worden uitgevoerd. Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /pathmap (C#-compileropties) voor meer informatie. |
--pdb:pdb-filename |
Noemt het PDB-bestand (programmadatabasebestand) voor uitvoerdebug. Deze optie is alleen van toepassing wanneer --debug deze ook is ingeschakeld.Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /pdb (C#-compileropties) voor meer informatie. |
--platform:platform-name |
Hiermee geeft u op dat de gegenereerde code alleen wordt uitgevoerd op het opgegeven platform (x86 , Itanium of x64 ) of, als de platformnaam anycpu is gekozen, geeft u op dat de gegenereerde code op elk platform kan worden uitgevoerd.Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /platform (C#-compileropties) voor meer informatie. |
--preferreduilang:lang |
Hiermee geeft u de naam van de voorkeurstaalcultuur (bijvoorbeeld es-ES , ja-JP ). |
--quotations-debug |
Hiermee geeft u op dat er extra foutopsporingsgegevens moeten worden verzonden voor expressies die zijn afgeleid van letterlijke F#-aanhalingstekens en definities. De foutopsporingsgegevens worden toegevoegd aan de aangepaste kenmerken van een F#-expressiestructuurknooppunt. Zie Codecitaten en Expr.CustomAttributes. |
--reference:assembly-filename -r:assembly-filename |
Maakt code van een F# of .NET Framework-assembly beschikbaar voor de code die wordt gecompileerd. Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /reference (C#-compileropties) voor meer informatie. |
--resource:resource-filename |
Hiermee wordt een beheerd resourcebestand ingesloten in de gegenereerde assembly. Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /resource (C#-compileropties) voor meer informatie. |
--sig:signature-filename |
Hiermee wordt een handtekeningbestand gegenereerd op basis van de gegenereerde assembly. Zie Handtekeningen voor meer informatie over handtekeningbestanden. |
--simpleresolution |
Hiermee geeft u op dat assemblyverwijzingen moeten worden omgezet met behulp van monoregels op basis van mappen in plaats van MSBuild-resolutie. De standaardinstelling is om MSBuild-resolutie te gebruiken, behalve wanneer deze wordt uitgevoerd onder Mono. |
--standalone |
Hiermee geeft u een assembly op die alle afhankelijkheden bevat, zodat deze zelfstandig wordt uitgevoerd zonder dat er extra assembly's nodig zijn, zoals de F#-bibliotheek. |
--staticlink:assembly-name |
Koppelt de opgegeven assembly statisch en alle dll's waarnaar wordt verwezen die afhankelijk zijn van deze assembly. Gebruik de assemblynaam, niet de DLL-naam. |
--subsystemversion |
Hiermee geeft u de versie van het subsysteem van het besturingssysteem moet worden gebruikt door het gegenereerde uitvoerbare bestand. Gebruik 6.02 voor Windows 8.1, 6.01 voor Windows 7, 6.00 voor Windows Vista. Deze optie is alleen van toepassing op uitvoerbare bestanden, niet DLL's en hoeft alleen te worden gebruikt als uw toepassing afhankelijk is van specifieke beveiligingsfuncties die alleen beschikbaar zijn voor bepaalde versies van het besturingssysteem. Als deze optie wordt gebruikt en een gebruiker probeert uw toepassing uit te voeren op een lagere versie van het besturingssysteem, mislukt deze met een foutbericht. |
--tailcalls[+|-] |
Hiermee schakelt u het gebruik van de tail IL-instructie in of uit, waardoor het stackframe opnieuw wordt gebruikt voor recursieve staartfuncties. Deze optie is standaard ingeschakeld. |
--target:[exe|winexe|library|module] filename |
Hiermee geeft u het type en de bestandsnaam van de gegenereerde gecompileerde code.
|
--times |
Geeft tijdsinformatie weer voor compilatie. |
--utf8output |
Hiermee schakelt u de uitvoer van de compiler voor afdrukken in de UTF-8-codering in. |
--warn:warning-level |
Hiermee stelt u een waarschuwingsniveau in (0 tot 5). Het standaardniveau is 3. Elke waarschuwing krijgt een niveau op basis van de ernst. Niveau 5 geeft meer, maar minder ernstige waarschuwingen dan niveau 1. Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /warn (C#-compileropties) voor meer informatie. |
--warnon:warning-number-list |
Schakel specifieke waarschuwingen in die standaard kunnen worden uitgeschakeld of uitgeschakeld door een andere opdrachtregeloptie. De lijst is door komma's gescheiden. |
--warnaserror[+|-] [warning-number-list] |
Hiermee kunt u de optie voor het rapporteren van waarschuwingen als fouten in- of uitschakelen. U kunt specifieke waarschuwingsnummers opgeven die moeten worden uitgeschakeld of ingeschakeld. Opties verderop in de opdrachtregel overschrijven opties eerder in de opdrachtregel. Als u bijvoorbeeld de waarschuwingen wilt opgeven die u niet wilt melden als fouten, geeft u op --warnaserror+ --warnaserror-:warning-number-list .Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /warnaserror (C#-compileropties) voor meer informatie. |
--win32manifest:manifest-filename |
Hiermee voegt u een Win32-manifestbestand toe aan de compilatie. Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /win32manifest (C# Compiler Options)voor meer informatie. |
--win32res:resource-filename |
Hiermee voegt u een Win32-resourcebestand toe aan de compilatie. Deze compileroptie is gelijk aan de C#-compileroptie van dezelfde naam. Zie /win32res (C#) Compiler Options)voor meer informatie. |
Waarschuwingen voor aanmelden
De F#-compiler ondersteunt verschillende opt-in-waarschuwingen:
Aantal | Samenvatting | Niveau | Beschrijving |
---|---|---|---|
21 | Recursie gecontroleerd tijdens runtime | 5 | Waarschuwen wanneer een recursief gebruik wordt gecontroleerd op initialisatie-geluid tijdens runtime. |
22 | Bindingen die buiten de volgorde zijn uitgevoerd | 5 | Waarschuwen wanneer een recursieve binding buiten de volgorde kan worden uitgevoerd vanwege een doorstuurverwijzing. |
52 | Impliciete kopieën van structs | 5 | Waarschuwen wanneer een onveranderbare struct wordt gekopieerd om ervoor te zorgen dat het origineel niet wordt gedempt door een bewerking. |
1178 | Impliciete gelijkheid/vergelijking | 5 | Waarschuwen wanneer een F#-typedeclaratie impliciet wordt afgeleid of NoEquality NoComparison als het kenmerk niet aanwezig is voor het type. |
1182 | Ongebruikte variabelen | n.v.t. | Waarschuwen voor ongebruikte variabelen. |
3180 | Impliciete heap-toewijzingen | n.v.t. | Waarschuwen wanneer een onveranderbaar lokaal impliciet wordt toegewezen als een verwijzingscel omdat deze is vastgelegd door een sluiting. |
3366 | Index notatie | n.v.t. | Waarschuwen wanneer de F# 5-index notatie expr.[idx] wordt gebruikt. |
3517 | InlineIfLambda-fout | n.v.t. | Waarschuwen wanneer de F#-optimalisatiefunctie een InlineIfLambda waarde niet inline kan uitvoeren, bijvoorbeeld als er een berekende functiewaarde is opgegeven in plaats van een expliciete lambda. |
3387 | op_Implicit conversie |
n.v.t. | Waarschuwen wanneer een impliciete .NET-conversie wordt gebruikt bij een methodeargument. |
3388 | Aanvullende impliciete upcast | n.v.t. | Waarschuwen wanneer een extra upcast impliciet wordt gebruikt, toegevoegd in F# 6. |
3389 | Impliciete widening | n.v.t. | Waarschuwen wanneer een impliciete numerieke widening wordt gebruikt. |
3390 | Ongeldige XML-documentopmerkingen | n.v.t. | Waarschuwen wanneer xml-documentenopmerkingen op verschillende manieren onjuist zijn ingedeeld. |
U kunt deze waarschuwingen inschakelen met behulp van /warnon:NNNN
of <WarnOn>NNNN</WarnOn>
waar NNNN
het relevante waarschuwingsnummer is.
(U kunt ook de syntaxis <WarnOn>FSNNNN</WarnOn>
gebruiken, bijvoorbeeld <WarnOn>FS3388</WarnOn>
.) Houd er rekening mee dat als de WarnOn
eigenschap meerdere keren is opgegeven, alleen het laatste exemplaar wordt gebruikt. Als u meerdere waarschuwingen wilt opgeven, geeft u de WarnOn
eigenschap eenmaal op met een door komma's gescheiden tekenreeks als inhoud: <WarnOn>3388,3559</WarnOn>
.
Verwante artikelen:
Title | Beschrijving |
---|---|
Interactieve F#-opties | Beschrijft opdrachtregelopties die worden ondersteund door de F#-interpreter, fsi.exe. |
Naslaginformatie over projecteigenschappen | Beschrijft de gebruikersinterface voor projecten, inclusief projecteigenschapspagina's die buildopties bieden. |