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 observados com a extensão .fsproj
.
O ambiente de compilação também pode ser controlado definindo as propriedades do projeto. Para projetos direcionados ao .NET Core, a propriedade "Outros sinalizadores", <OtherFlags>...</OtherFlags>
em .fsproj
, é usada para especificar opções extras de linha de comando.
Opções do compilador listadas em ordem alfabética
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, será fornecido um link para o tópico de opções do compilador C#.
Opção do compilador | Descrição |
---|---|
--allsigs |
Gera um novo arquivo de assinatura (ou regenera um arquivo de assinatura existente) para cada arquivo de origem na compilação. Para mais informações sobre arquivos de assinatura, confira Assinaturas. |
-a filename.fs |
Gera uma biblioteca do arquivo especificado. Essa opção é uma forma curta de --target:library filename.fs . |
--baseaddress:address |
Especifica o endereço básico preferencial no qual uma DLL será carregada. Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /baseaddress (opções do compilador C#). |
--codepage:id |
Especifica qual página de código deve ser usada durante a compilação caso a página necessária não seja a página de código padrão atual do sistema. Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para mais informações, confira /codepage (opções do compilador C#). |
--consolecolors |
Especifica que erros e avisos usam texto codificado por cores no console. |
--crossoptimize[+ or -] |
Habilita ou desabilita otimizações entre módulos. |
--delaysign[+|-] |
Faz assinatura atrasada do assembly usando somente a parte pública da chave de nome forte. Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /delaysign (opções do compilador C#). |
--checked[+|-] |
Habilita ou desabilita a geração de verificações de estouro. Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /checked (opções do compilador C#). |
--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ção de depuração a ser gerada. O padrão é full , que permite que um depurador seja anexado a um programa em execução. Escolha pdbonly para obter informações de depuração limitadas armazenadas em um arquivo pdb (banco de dados do programa).Equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /debug (opções do compilador do C#). |
--define:symbol -d:symbol |
Define um símbolo para uso na compilação condicional. |
--deterministic[+|-] |
Produz um assembly determinístico (incluindo GUID de 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 só dá suporte a tipos de depuração inseridos e portáteis |
--doc:xmldoc-filename |
Instrui o compilador a gerar comentários de documentação XML para o arquivo especificado. Para mais informações, confira a Documentação do XML. Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /doc (opções do compilador C#). |
--fullpaths |
Instrui o compilador a gerar caminhos totalmente qualificados. Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /fullpaths (opções do compilador C#). |
--help -? |
Exibe informações de uso, incluindo uma breve descrição de todas as opções do compilador. |
--highentropyva[+|-] |
Habilitar ou desabilitar a ASLR (randomização de layout de espaço de endereço de alta entropia), um recurso de segurança aprimorado. O SO randomiza os locais na memória em que 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 um computador 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 referenciados. Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /lib (opções do compilador C#). |
--linkresource:resource-info |
Vincula um recurso especificado ao assembly. O formato de informações de recurso é filename[name[public|private]] Vincular um só recurso a essa opção é uma alternativa para inserir um arquivo de recurso inteiro com a opção --resource .Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /linkresource (opções do compilador C#). |
--mlcompatibility |
Ignora avisos que aparecem quando você usa recursos projetados para compatibilidade com outras versões do ML. |
--noframework |
Desabilita a referência padrão ao assembly .NET Framework. |
--nointerfacedata |
Instrui o compilador a omitir o recurso que normalmente adiciona a um assembly que inclui metadados específicos de F#. |
--nologo |
Não mostra o texto da faixa ao iniciar o compilador. |
--nooptimizationdata |
Instrui o compilador a incluir apenas a otimização essencial para implementar constructos embutidos. Inibe embutir entre módulos, mas melhora a compatibilidade binária. |
--nowin32manifest |
Instrui o compilador a omitir o manifesto Win32 padrão. |
--nowarn:warning-number-list |
Desabilita avisos específicos listados por número. Separe cada número de aviso por uma vírgula. Você pode descobrir o número de aviso para qualquer aviso da saída da compilação. Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /nowarn (opções do compilador C#). |
--optimize[+|-] [optimization-option-list] -O[+|-] [optimization-option-list] |
Habilita ou desabilita otimizações. Algumas opções de otimização podem ser desabilitadas ou habilitadas seletivamente listando-as. Elas são: nojitoptimize , nojittracking , nolocaloptimize , nocrossoptimize , notailcalls . |
--out:output-filename -o:output-filename |
Especifica o nome do assembly ou módulo compilado. Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /out (opções do compilador C#). |
--pathmap:path=sourcePath,... |
Especifica como mapear caminhos físicos para nomes de caminho de origem emitidos pelo compilador. Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para mais informações, confira /pathmap (opções do compilador C#). |
--pdb:pdb-filename |
Nomeia o arquivo PDB de depuração de saída (banco de dados do programa). Essa opção só se aplica quando --debug também está habilitado.Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para mais informações, confira /pdb (opções do compilador C#). |
--platform:platform-name |
Especifica que o código gerado só será executado na plataforma especificada (x86 , Itanium ou x64 ) ou, se o nome de plataforma anycpu for escolhido, especifica que o código gerado pode ser executado em qualquer plataforma.Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /platform (opções do compilador C#). |
--preferreduilang:lang |
Especifica o nome de cultura de idioma de saída preferencial (por exemplo, es-ES , ja-JP ). |
--quotations-debug |
Especifica que informações extras de depuração devem ser emitidas para expressões derivadas de literais de citações F# e definições refletidas. As informações de depuração são adicionadas aos atributos personalizados de um nó de árvore de expressão de F#. Confira Citações de Código e Expr.CustomAttributes. |
--reference:assembly-filename -r:assembly-filename |
Disponibiliza o código de um assembly F# ou .NET Framework para o código que está sendo compilado. Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /reference (opções do compilador C#). |
--resource:resource-filename |
Insira um arquivo de recurso gerenciado no assembly gerado. Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /resource (opções do compilador C#). |
--sig:signature-filename |
Gera um arquivo de assinatura com base no assembly gerado. Para mais informações sobre arquivos de assinatura, confira Assinaturas. |
--simpleresolution |
Especifica que as referências de assembly devem ser resolvidas usando regras Mono baseadas em diretório em vez da resolução do MSBuild. O padrão é usar a resolução do MSBuild, exceto quando executado em Mono. |
--standalone |
Especifica para produzir um assembly que contenha todas as suas dependências para que ele seja executado sozinho sem a necessidade de assemblies adicionais, como a biblioteca F#. |
--staticlink:assembly-name |
Vincula estaticamente 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 do sistema 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ó precisará ser usada se o 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, ela falhará com uma mensagem de erro. |
--tailcalls[+|-] |
Habilita ou desabilita o uso da instrução IL final, o que faz com que o registro de ativação seja reutilizado para funções recursivas de cauda. Por padrão, essa opção é ativada. |
--target:[exe|winexe|library|module] filename |
Especifica o tipo e o nome do arquivo do código compilado gerado.
|
--times |
Exibe informações de tempo para compilação. |
--utf8output |
Habilita a saída do compilador de impressão 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 com base em sua gravidade. O nível 5 fornece avisos mais, mas menos severos, do que o nível 1. Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /warn (opções do compilador C#). |
--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írgulas. |
--warnaserror[+|-] [warning-number-list] |
Habilita ou desabilita a opção de relatar avisos como erros. Você pode fornecer números de aviso específicos a serem desabilitados ou habilitados. Opções posteriores na linha de comando substituem opções anteriormente na linha de comando. Por exemplo, para especificar os avisos que você não deseja relatar como erros, especifique --warnaserror+ --warnaserror-:warning-number-list .Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para obter mais informações, consulte /warnaserror (opções do compilador C#). |
--win32manifest:manifest-filename |
Adiciona um arquivo de manifesto Win32 à compilação. Essa opção do compilador é equivalente à opção do 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. Essa opção do compilador é equivalente à opção do compilador C# de mesmo nome. Para mais informações, confira /win32res (opções do compilador C#). |
Avisos de aceitação
O compilador F# dá suporte a vários avisos de aceitação:
Número | Resumo | Nível | Descrição |
---|---|---|---|
21 | Recursão verificada em tempo de execução | 5 | Avisar quando um uso recursivo for verificado quanto à solidez da inicialização em tempo de execução. |
22 | Associações executadas fora de ordem | 5 | Avisar quando uma associação recursiva pode ser executada fora de ordem devido a uma referência de encaminhamento. |
52 | Cópias implícitas de structs | 5 | Avisar quando um struct imutável for copiado para garantir que o original não seja alterado por uma operação. |
1178 | Igualdade/comparação implícita | 5 | Avisar 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 usadas | n/d | Avisar para variáveis não usadas. |
3180 | Alocações de heap implícitas | n/d | Avisar quando um local mutável é alocado implicitamente como uma célula de referência porque foi capturado por um fechamento. |
3366 | Notação de índice | n/d | Avisar quando a notação de índice F# 5 expr.[idx] for usada. |
3517 | Falha de InlineIfLambda | n/a | Avisar quando o otimizador F# não conseguir embutir um valor InlineIfLambda , por exemplo, se um valor de função computada tiver sido fornecido em vez de um lambda explícito. |
3387 | Conversão de op_Implicit |
n/d | Avisar quando uma conversão implícita do .NET for usada em um argumento de método. |
3388 | Upcast implícito adicional | n/d | Avisar quando um upcast adicional for usado implicitamente, adicionado em F# 6. |
3389 | Ampliação implícita | n/d | Avisar quando uma ampliação numérica implícita for usada. |
3390 | Comentários malformados da documentação XML | n/d | Avisar quando os comentários da documentação XML estiverem malformados de várias maneiras. |
Você pode habilitar esses avisos usando /warnon:NNNN
ou <WarnOn>NNNN</WarnOn>
, em que NNNN
é 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 propriedade WarnOn
for especificada várias vezes, somente a última ocorrência será usada. Para especificar vários avisos, forneça a propriedade WarnOn
uma vez com uma cadeia de caracteres separada por vírgulas como o seu conteúdo: <WarnOn>3388,3559</WarnOn>
.
Artigos relacionados
Título | Descrição |
---|---|
Opções do F# Interativo | Descreve as opções de linha de comando compatíveis com o interpretador 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 build. |