Partilhar via


Opções do compilador

Este artigo descreve as opções de linha de comando do compilador para o compilador F#. O comando dotnet build invoca o compilador F# em arquivos de projeto F#. Os arquivos de projeto F# são anotados com a .fsproj extensão.

O ambiente de compilação também pode ser controlado definindo as propriedades do projeto. Para projetos destinados ao .NET Core, a propriedade "Other flags", <OtherFlags>...</OtherFlags> em .fsproj, é usada para especificar opções de linha de comando extras.

Opções do compilador listadas alfabeticamente

A tabela a seguir mostra as opções do compilador listadas em ordem alfabética. Algumas das opções do compilador F# são semelhantes às opções do compilador C#. Se esse for o caso, um link para o tópico de opções do compilador C# é fornecido.

Opção do compilador Description
--allsigs Gera um novo (ou regenera um arquivo de assinatura existente) para cada arquivo de origem na compilação. Para obter mais informações sobre arquivos de assinatura, consulte Assinaturas.
-a filename.fs Gera uma biblioteca a partir do arquivo especificado. Esta opção é uma forma abreviada de --target:library filename.fs.
--baseaddress:address Especifica o endereço base preferencial no qual carregar uma DLL.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /baseaddress (C# Compiler Options).
--codepage:id Especifica qual página de código usar durante a compilação se a página necessária não for a página de código padrão atual para o sistema.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /code pages (C# Compiler Options).
--consolecolors Especifica que os erros e avisos usam texto codificado por cores no console.
--crossoptimize[+ or -] Habilita ou desabilita otimizações entre módulos.
--delaysign[+|-] Atrasa a montagem usando apenas a parte pública da chave de nome forte.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /delaysign (C# Compiler Options).
--checked[+|-] Habilita ou desabilita a geração de verificações de estouro.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /checked (C# Compiler Options).
--debug[+|-]

-g[+|-]

--debug:[full|pdbonly]

-g: [full|pdbonly]
Habilita ou desabilita a geração de informações de depuração ou especifica o tipo de informações de depuração a serem geradas. O padrão é full, que permite anexar a um programa em execução. Opte por pdbonly obter informações de depuração limitadas armazenadas em um arquivo pdb (banco de dados de programas).

Equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte,

/debug (Opções do compilador C#).
--define:symbol

-d:symbol
Define um símbolo para uso na compilação condicional.
--deterministic[+|-] Produz um assembly determinístico (incluindo GUID da versão do módulo e carimbo de data/hora). Essa opção não pode ser usada com números de versão curinga e suporta apenas tipos de depuração incorporados e portáteis
--doc:xmldoc-filename Instrui o compilador a gerar comentários da documentação XML para o arquivo especificado. Para obter mais informações, consulte Documentação XML.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /doc (C# Compiler Options).
--fullpaths Instrui o compilador a gerar caminhos totalmente qualificados.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /fullpaths (C# Compiler Options).
--help

-?
Exibe informações de uso, incluindo uma breve descrição de todas as opções do compilador.
--highentropyva[+|-] Habilite ou desabilite a ASLR (randomização de layout de espaço de endereço) de alta entropia, um recurso de segurança aprimorado. O sistema operacional randomiza os locais na memória onde a infraestrutura para aplicativos (como a pilha e o heap) são carregadas. Se você habilitar essa opção, os sistemas operacionais poderão usar essa randomização para usar o espaço de endereço completo de 64 bits em uma máquina de 64 bits.
--keycontainer:key-container-name Especifica um contêiner de chave de nome forte.
--keyfile:filename Especifica o nome de um arquivo de chave pública para assinar o assembly gerado.
--lib:folder-name

-I:folder-name
Especifica um diretório a ser pesquisado para assemblies que são referenciados.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /lib (C# Compiler Options).
--linkresource:resource-info Vincula um recurso especificado ao assembly. O formato de resource-info é filename[name[public|private]]

Vincular um único recurso a essa opção é uma alternativa para incorporar um arquivo de recurso inteiro com a --resource opção.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /linkresource (C# Compiler Options).
--mlcompatibility Ignora os avisos que aparecem quando você usa recursos projetados para compatibilidade com outras versões do ML.
--noframework Desabilita a referência padrão para o assembly do .NET Framework.
--nointerfacedata Instrui o compilador a omitir o recurso que normalmente adiciona a um assembly que inclui metadados específicos do F#.
--nologo Não mostra o texto do banner ao iniciar o compilador.
--nooptimizationdata Instrui o compilador a incluir apenas a otimização essencial para implementar construções embutidas. Inibe o inlining entre módulos, mas melhora a compatibilidade binária.
--nowin32manifest Instrui o compilador a omitir o manifesto Win32 padrão.
--nowarn:warning-number-list Desativa avisos específicos listados por número. Separe cada número de aviso por vírgula. Você pode descobrir o número de aviso para qualquer aviso da saída da compilação.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /nowarn (C# Compiler Options).
--optimize[+|-] [optimization-option-list]

-O[+|-] [optimization-option-list]
Habilita ou desabilita otimizações. Algumas opções de otimização podem ser desativadas ou ativadas seletivamente listando-as. São eles: nojitoptimize, nojittracking, , nolocaloptimize, notailcallsnocrossoptimize.
--out:output-filename

-o:output-filename
Especifica o nome do assembly ou módulo compilado.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /out (C# Compiler Options).
--pathmap:path=sourcePath,... Especifica como mapear caminhos físicos para nomes de caminho de origem enviados pelo compilador.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /pathmap (C# Compiler Options).
--pdb:pdb-filename Nomeia o arquivo PDB (banco de dados de programa) de depuração de saída. Esta opção só se aplica quando --debug também está ativada.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /pdb (C# Compiler Options).
--platform:platform-name Especifica que o código gerado só será executado na plataforma especificada (x86, , ou x64), ou, se o nome anycpu da plataforma for escolhido, especifica que o código gerado pode ser executado Itaniumem qualquer plataforma.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /platform (C# Compiler Options).
--preferreduilang:lang Especifica o nome da cultura do idioma de saída preferido (por exemplo, es-ESja-JP, ).
--quotations-debug Especifica que informações de depuração extras devem ser emitidas para expressões derivadas de literais de cotação F# e definições refletidas. As informações de depuração são adicionadas aos atributos personalizados de um nó da árvore de expressão F#. Consulte Cotações de código e Expr.CustomAttributes.
--reference:assembly-filename

-r:assembly-filename
Torna o código de um assembly F# ou .NET Framework disponível para o código que está sendo compilado.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /reference (C# Compiler Options).
--resource:resource-filename Incorpora um arquivo de recurso gerenciado no assembly gerado.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /resource (C# Compiler Options).
--sig:signature-filename Gera um arquivo de assinatura com base no assembly gerado. Para obter mais informações sobre arquivos de assinatura, consulte Assinaturas.
--simpleresolution Especifica que as referências de assembly devem ser resolvidas usando regras Mono baseadas em diretório em vez de resolução MSBuild. O padrão é usar a resolução MSBuild, exceto quando executado em Mono.
--standalone Especifica para produzir um assembly que contém todas as suas dependências para que ele seja executado sozinho sem a necessidade de assemblies adicionais, como a biblioteca F#.
--staticlink:assembly-name Estaticamente vincula o assembly fornecido e todas as DLLs referenciadas que dependem desse assembly. Use o nome do assembly, não o nome da DLL.
--subsystemversion Especifica a versão do subsistema operacional a ser usada pelo executável gerado. Use 6.02 para Windows 8.1, 6.01 para Windows 7, 6.00 para Windows Vista. Essa opção só se aplica a executáveis, não a DLLs, e só precisa ser usada se seu aplicativo depender de recursos de segurança específicos disponíveis apenas em determinadas versões do sistema operacional. Se essa opção for usada e um usuário tentar executar seu aplicativo em uma versão inferior do sistema operacional, ele falhará com uma mensagem de erro.
--tailcalls[+|-] Habilita ou desabilita o uso da instrução tail IL, que faz com que o quadro da pilha seja reutilizado para funções recursivas de cauda. Por predefinição, esta opção encontra-se ativada.
--target:[exe|winexe|library|module] filename Especifica o tipo e o nome do arquivo do código compilado gerado.
  • exe significa um aplicativo de console.
  • winexe significa um aplicativo do Windows, que difere do aplicativo de console por não ter fluxos de entrada/saída padrão (stdin, stdout e stderr) definidos.
  • library é uma montagem sem um ponto de entrada.
  • module é um módulo do .NET Framework (.netmodule), que pode ser combinado posteriormente com outros módulos em um assembly.
    • Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /target (C# Compiler Options).
--times Exibe informações de tempo para compilação.
--utf8output Permite imprimir a saída do compilador na codificação UTF-8.
--warn:warning-level Define um nível de aviso (0 a 5). O nível padrão é 3. Cada aviso recebe um nível baseado na sua gravidade. O nível 5 emite mais avisos, mas menos severos, do que o nível 1.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /warn (C# Compiler Options).
--warnon:warning-number-list Habilite avisos específicos que podem estar desativados por padrão ou desabilitados por outra opção de linha de comando. A lista é separada por vírgula.
--warnaserror[+|-] [warning-number-list] Habilita ou desabilita a opção de relatar avisos como erros. Você pode fornecer números de aviso específicos para serem desativados ou ativados. As opções posteriores na linha de comando substituem as opções anteriores na linha de comando. Por exemplo, para especificar os avisos que você não deseja que sejam relatados como erros, especifique --warnaserror+ --warnaserror-:warning-number-list.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /warnaserror (C# Compiler Options).
--win32manifest:manifest-filename Adiciona um arquivo de manifesto Win32 à compilação. Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /win32manifest (Opções do compilador C#).
--win32res:resource-filename Adiciona um arquivo de recurso Win32 à compilação.

Esta opção de compilador é equivalente à opção de compilador C# de mesmo nome. Para obter mais informações, consulte /win32res ((C#) Compiler Options).

Avisos de aceitação

O compilador F# suporta vários avisos de aceitação:

Número Resumo Level Description
21 Recursão verificada em tempo de execução 5 Avise quando um uso recursivo é verificado quanto à solidez da inicialização em tempo de execução.
22 Ligações executadas fora de ordem 5 Avisar quando uma ligação recursiva pode ser executada fora de ordem devido a uma referência de encaminhamento.
52 Cópias implícitas de structs 5 Avise quando uma estrutura imutável é copiada para garantir que o original não seja mutado por uma operação.
1178 Igualdade/comparação implícita 5 Avise quando uma declaração de tipo F# é implicitamente inferida como sendo NoEquality ou NoComparison mas o atributo não está presente no tipo.
1182 Variáveis não utilizadas n/d Avisar para variáveis não utilizadas.
3180 Alocações implícitas de heap n/d Avisar quando um local mutável é implicitamente alocado como uma célula de referência porque foi capturado por um fechamento.
3366 Notação de índice n/d Avise quando a notação expr.[idx] de índice F# 5 for usada.
3517 Falha InlineIfLambda n/d Avise quando o otimizador de F# não conseguir inserir um InlineIfLambda valor, por exemplo, se um valor de função computado tiver sido fornecido em vez de um lambda explícito.
3387 op_Implicit conversão n/d Avise quando uma conversão implícita do .NET é usada em um argumento de método.
3388 Upcast implícito adicional n/d Avise quando um upcast adicional for usado implicitamente, adicionado em F# 6.
3389 Alargamento implícito n/d Avise quando um alargamento numérico implícito for usado.
3390 Comentários do documento XML malformado n/d Avise quando os comentários do documento XML estiverem malformados de várias maneiras.

Pode ativar estes avisos utilizando /warnon:NNNN ou <WarnOn>NNNN</WarnOn> onde NNNN está o número de aviso relevante. (Você também pode usar a sintaxe <WarnOn>FSNNNN</WarnOn>, por exemplo.) <WarnOn>FS3388</WarnOn> Observe que, se a WarnOn propriedade for especificada várias vezes, somente a última ocorrência será usada. Para especificar vários avisos, forneça a propriedade uma vez com uma cadeia de caracteres separada por vírgulas WarnOn como seu conteúdo: <WarnOn>3388,3559</WarnOn>.

Title Description
Opções interativas do F# Descreve as opções de linha de comando suportadas pelo interpretador de F#, fsi.exe.
Referência de propriedades do projeto Descreve a interface do usuário para projetos, incluindo páginas de propriedades do projeto que fornecem opções de compilação.