Compartilhar via


Opções do compilador listadas em ordem alfabética

Esta tabela contém uma lista alfabética de opções do compilador. Para obter uma lista de opções do compilador por categoria, confira o artigo Opções do compilador listadas por categoria.

Opções do compilador

Opção Finalidade
@ Especifica um arquivo de resposta.
/? Lista as opções do compilador.
/AI<dir> Especifica um diretório de pesquisa para resolver referências de arquivo passadas para a diretiva #using.
/analyze Habilita a análise de código.
/arch Requisitos mínimos de arquitetura da CPU
/arm64EC Gere código compatível com a ABI arm64EC.
/await Habilitar extensões de corrotina (funções retomáveis).
/await:strict Habilite o suporte à corrotina padrão do C++20 com versões de linguagem anteriores.
/bigobj Aumenta o número de seções endereçáveis em um arquivo .obj.
/C Preserva comentários durante o pré-processamento.
/c Compila sem vinculação.
/cgthreads Especifica o número de threads cl.exe a ser usado na otimização e na geração de código.
/clr Produz um arquivo de saída a ser executado no Common Language Runtime.
/clr:implicitKeepAlive- Desativar a emissão implícita de System::GC::KeepAlive(this).
/clr:initialAppDomain Habilitar o comportamento do AppDomain inicial do Visual C++ 2002.
/clr:netcore Produzir assemblies direcionados ao runtime do .NET Core.
/clr:noAssembly Não produzir um assembly.
/clr:nostdimport Não importar nenhum assembly necessário implicitamente.
/clr:nostdlib Ignorar o diretório do sistema do .NET Framework ao pesquisar por assemblies.
/clr:pure Produzir um arquivo de saída somente IL (sem código executável nativo).
/clr:safe Produzir um arquivo de saída somente IL verificável.
/constexpr:backtrace<N> Mostrar N avaliações de constexpr no diagnóstico (padrão: 10).
/constexpr:depth<N> Limite de profundidade de recursão para avaliação de constexpr (padrão: 512).
/constexpr:steps<N> Terminar a avaliação de constexpr após N etapas (padrão: 100000)
/D<name>{=|#}<text> Define constantes e macros.
/diagnostics Formato de diagnóstico: imprime informações da coluna.
/diagnostics:caret[-] Formato de diagnóstico: imprime a coluna e a linha de origem indicada.
/diagnostics:classic Usar o formato de diagnóstico herdado.
/doc Processa comentários de documentação para um arquivo XML.
/E Copia a saída do pré-processador para a saída padrão.
/EHa Habilitar o tratamento de exceção do C++ (com exceções de SEH).
/EHc extern "C" usa como padrão nothrow.
/EHr Sempre gerar verificações de término de runtime noexcept.
/EHs Habilitar o tratamento de exceções do C++ (sem exceções SEH).
/EP Copia a saída do pré-processador para a saída padrão.
/errorReport Preterido. As configurações do WER (Relatório de Erros do Windows) controlam o relatório de erros.
/execution-charset Definir o conjunto de caracteres de execução.
/experimental:log Permite a saída SARIF estruturada experimental.
/experimental:module Habilitar o suporte a módulo experimental.
/exportHeader Criar os arquivos de unidades de cabeçalho (.ifc) especificados pelos argumentos de entrada.
/external:anglebrackets Tratar todos os cabeçalhos incluídos por meio de <> como externos.
/external:env:<var> Especifica uma variável de ambiente com locais de cabeçalhos externos.
/external:I <path> Especifica o local dos cabeçalhos externos.
/external:templates[-] Avalia o nível de aviso na cadeia de instanciação do modelo.
/external:W<n> Define o nível de aviso para cabeçalhos externos.
/F Define o tamanho da pilha.
/FA Configura um arquivo de listagem de assembly.
/Fa Cria um arquivo de listagem de assembly.
/fastfail Habilitar o modo de falha rápida.
/favor:<blend|AMD64|INTEL64|ATOM> Produz código otimizado para uma arquitetura específica ou um intervalo de arquiteturas.
/FC Exibe o caminho completo dos arquivos de código-fonte passados para cl.exe no texto de diagnóstico.
/Fd Renomeia o arquivo de banco de dados do programa.
/Fe Renomeia o arquivo executável.
/feature Habilite os recursos de arquitetura.17.10
/FI<file> Pré-processa o arquivo de inclusão especificado.
/Fi Especifica o nome do arquivo de saída pré-processado.
/Fm Cria um arquivo de mapa.
/Fo Cria um arquivo de objeto.
/Fp Especifica um nome de arquivo de cabeçalho pré-compilado.
/fp:contract Considerar contrações de ponto flutuante ao gerar código.
/fp:except[-] Considerar exceções de ponto flutuante ao gerar código.
/fp:fast Modelo de ponto flutuante "rápido"; os resultados são menos previsíveis.
/fp:precise Modelo de ponto flutuante "preciso"; os resultados são previsíveis.
/fp:strict Modelo de ponto flutuante "estrito" (implica /fp:except).
/fpcvt:BC Compatibilidade de conversão de ponto flutuante para inteiro sem sinal.
/fpcvt:IA Comportamento de conversão de ponto flutuante nativo Intel em inteiro sem sinal.
/FR, /Fr Arquivos de navegador .sbr gerados por nome. /Fr foi preterido.
/FS Força a serialização de gravações no arquivo PDB por meio de MSPDBSRV.EXE.
/fsanitize Habilita a compilação de instrumentação de limpeza, como AddressSanitizer.
/fsanitize-coverage Habilita a compilação da instrumentação de cobertura de código para bibliotecas como o LibFuzzer.
/Ft<dir> Local dos arquivos de cabeçalho gerados para #import.
/FU<file> Força o uso de um nome de arquivo como se ele tivesse sido passado para a diretiva #using.
/Fx Mescla o código injetado com o arquivo de origem.
/GA Otimiza para aplicativos do Windows.
/Gd Usa a convenção de chamada __cdecl. (apenas x86)
/Ge Preterido. Ativa investigações de pilha.
/GF Habilita pooling de cadeia de caracteres.
/GH Chama a função de gancho _pexit.
/Gh Chama a função de gancho _penter.
/GL[-] Habilita a otimização de todo o programa.
/Gm[-] Preterido. Habilita recompilação mínima.
/GR[-] Habilita RTTI (informações de tipo de tempo de execução).
/Gr Usa a convenção de chamada __fastcall. (apenas x86)
/GS[-] Verifica a segurança do buffer.
/Gs[n] Controla investigações de pilha.
/GT Dá suporte à segurança de fibra para dados alocados usando armazenamento de thread local estático.
/Gu[-] Verificar funções distintas que têm endereços distintos.
/guard:cf[-] Adiciona verificações de segurança de proteção do fluxo de controle.
/guard:ehcont[-] Habilita metadados de continuação do EH.
/Gv Usa a convenção de chamada __vectorcall. (somente x86 e x64)
/Gw[-] Habilita a otimização de dados globais de todo o programa.
/GX[-] Preterido. Habilita o tratamento síncrono de exceções. Use o /EH em vez disso.
/Gy[-] Habilita a vinculação no nível de função.
/GZ Preterido. Habilita as verificações rápidas. (Mesmo que /RTC1)
/Gz Usa a convenção de chamada __stdcall. (apenas x86)
/H Preterido. Restringe o tamanho de nomes externos (públicos).
/headerName Compilar uma unidade de cabeçalho com base no cabeçalho especificado.
/headerUnit Especificar onde localizar o arquivo de unidade de cabeçalho (.ifc) para o cabeçalho especificado.
/HELP Lista as opções do compilador.
/homeparams Força os parâmetros passados em registros a serem gravados em seus locais na pilha mediante a entrada da função. Esta opção do compilador se destina apenas aos compiladores x64 (nativos e de compilação cruzada).
/hotpatch Cria uma imagem capaz de aplicar patches sob demanda.
/I<dir> Pesquisa um diretório para incluir arquivos.
/ifcOutput Especifique o nome do arquivo de saída ou o diretório para arquivos criados .ifc .
/interface Tratar o arquivo de entrada como uma unidade de interface do módulo.
/internalPartition Tratar o arquivo de entrada como uma unidade de partição interna.
/J Altera o tipo char padrão.
/jumptablerdata Coloque as .rdata tabelas de salto da instrução switch case na seção.
/JMC Dá suporte à depuração nativa do Apenas Meu Código do C++.
/kernel O compilador e o vinculador criam um binário que pode ser executado no kernel do Windows.
/LD Cria uma biblioteca de vínculo dinâmico.
/LDd Cria uma biblioteca de vínculo dinâmico de depuração.
/link Passa a opção especificada para LINK.
/LN Cria um MSIL .netmodule.
/MD Compila para criar uma DLL com multithread usando MSVCRT.lib.
/MDd Compila para criar DLL com multithread de depuração usando MSVCRTD.lib.
/MP Cria vários arquivos de origem ao mesmo tempo.
/MT Compila para criar um arquivo executável com multithread usando LIBCMT.lib.
/MTd Compila para criar um arquivo executável com multithread de depuração usando LIBCMTD.lib.
/nologo Suprime a exibição da faixa de logon.
/O1 Cria um código pequeno.
/O2 Cria um código rápido.
/Ob<n> Controla a expansão embutida.
/Od Desabilita a otimização.
/Og Preterido. Usa otimizações globais.
/Oi[-] Gera funções intrínsecas.
/openmp Habilita #pragma omp no código-fonte.
/openmp:experimental Habilitar extensões de linguagem OpenMP 2.0 e selecionar extensões de linguagem OpenMP 3.0 e posteriores.
/openmp:llvm Extensões de linguagem OpenMP usando o runtime LLVM.
/options:strict Opções do compilador não reconhecidas são erros.
/Os Favorece código pequeno.
/Ot Favorece código rápido.
/Ox Um subconjunto de /O2 que não inclui /GF ou /Gy.
/Oy Omita o ponteiro do quadro. (apenas x86)
/P Grava a saída do pré-processador em um arquivo.
/PD Imprimir todas as definições de macro.
/permissive[-] Definir o modo de conformidade padrão.
/PH Gerar #pragma file_hash durante o pré-processamento.
/presetPadding Inicializar em zero o preenchimento para tipos de classe baseados em pilha.
/Qfast_transcendentals Gera transcendentais rápidos.
/QIfist Preterido. Suprime a chamada da função auxiliar _ftol quando é necessária uma conversão de um tipo de ponto flutuante para um tipo integral. (apenas x86)
/Qimprecise_fwaits Remove comandos fwait dentro de blocos try.
/QIntel-jcc-erratum Atenua o impacto no desempenho da atualização de microcódigo da errata do Intel JCC.
/Qpar-report:<n> Habilita os níveis de relatório para paralelização automática.
/Qpar Habilita a paralelização automática de loops.
/Qsafe_fp_loads Usa instruções de movimento de inteiro para valores de ponto flutuante e desabilita determinadas otimizações de carregamento de ponto flutuante.
/Qspectre[-] Habilitar mitigações para CVE 2017-5753, para uma classe de ataques Spectre.
/Qspectre-load Gerar instruções de serialização para cada instrução de carga.
/Qspectre-load-cf Gerar instruções de serialização para cada instrução de fluxo de controle que carrega memória.
/Qvec-report:<n> Habilita níveis de relatório para vetorização automática.
/reference Use o módulo IFC nomeado.
/RTC1 Habilitar verificações de runtime rápido (equivalente a /RTCsu).
/RTCc Converter em verificações de tipo menores em tempo de execução.
/RTCs Habilitar verificações de runtime do registro de ativação.
/RTCu Habilita verificações de uso local não inicializado.
/scanDependencies Listar dependências de módulo no formulário JSON Padrão C++.
/sdl Habilitar mais recursos de segurança e avisos.
/showIncludes Exibe uma lista de todos os arquivos de inclusão durante a compilação.
/source-charset Definir conjunto de caracteres de origem.
/sourceDependencies Listar todas as dependências de nível de origem.
/sourceDependencies:directives Listar dependências de unidade de módulo e cabeçalho.
/std:c++14 C++14 ISO/IEC padrão 14882:2014 (padrão).
/std:c++17 C++17 ISO/IEC padrão 14882:2017.
/std:c++20 C++20 ISO/IEC padrão 14882:2020.
/std:c++latest As versões prévias do recurso padrão do C++ mais recentes.
/std:c11 C11 ISO/IEC padrão 9899:2011.
/std:c17 C17 ISO/IEC padrão 9899:2018.
/std:clatest Os recursos de visualização padrão C de rascunho mais recentes.
/TC Especifica que todos os arquivos de origem são C.
/Tc Especifica um arquivo de origem do C.
/TP Especifica que todos os arquivos de origem são C++.
/Tp Especifica um arquivo de origem do C++.
/translateInclude Tratar #include como import.
/U<name> Remove uma macro predefinida.
/u Remove todas as macros predefinidas.
/utf-8 Define conjunto de caracteres de origem e execução como UTF-8.
/V Preterido. Define a cadeia de caracteres da versão.
/validate-charset Validar arquivos UTF-8 somente para caracteres compatíveis.
/vd{0|1|2} Suprime ou habilita membros da classe vtordisp ocultos.
/vlen Especifica o comprimento do vetor.
/vmb Usa a melhor base de ponteiros para membros.
/vmg Usa a generalidade completa de ponteiros para membros.
/vmm Declara a herança múltipla.
/vms Declara a herança única.
/vmv Declara a herança virtual.
/volatile:iso Semântica de aquisição/liberação não garantida em acessos voláteis.
/volatile:ms Semântica de aquisição/liberação garantida em acessos voláteis.
/volatileMetadata Gerar metadados em acessos de memória volátil.
/w Desabilitar todos os avisos.
/W0, /W1, /W2, /W3, /W4 Define o nível de aviso de saída.
/w1<n>, /w2<n>, /w3<n>, /w4<n> Define o nível de aviso para o aviso especificado.
/Wall Habilita todos os avisos, inclusive avisos desabilitados por padrão.
/wd<n> Desabilita o aviso especificado.
/we<n> Trata o aviso especificado como um erro.
/WL Habilita o diagnóstico em uma linha para mensagens de erro e aviso durante a compilação do código-fonte do C++ da linha de comando.
/wo<n> Exibe o aviso especificado apenas uma vez.
/Wv:xx[.yy[.zzzzz]] Desabilita os avisos introduzidos após a versão especificada do compilador.
/WX Tratar avisos como erros.
/X Ignora o diretório de inclusão padrão.
/Y- Ignora todas as outras opções de compilador do cabeçalho pré-compilado na compilação atual.
/Yc Criar arquivo .PCH.
/Yd Preterido. Coloca informações de depuração completas em todos os arquivos de objeto. Use o /Zi em vez disso.
/Yl Injeta uma referência PCH durante a criação de uma biblioteca de depuração.
/Yu Usa um arquivo de cabeçalho pré-compilado durante a compilação.
/Z7 Gera informações de depuração compatíveis com C 7.0.
/Za Desabilita algumas extensões de linguagem C89 no código C.
/Zc:__cplusplus[-] Habilitar a macro __cplusplus para relatar o padrão com suporte (desativada por padrão).
/Zc:__STDC__ Ative a __STDC__ macro para relatar que o padrão C é suportado (desativado por padrão).
/Zc:alignedNew[-] Habilitar a alocação dinâmica de alinhamento excessivo do C++17 (ativada por padrão no C++17).
/Zc:auto[-] Aplicar o novo significado do Padrão C++ para auto(ativada por padrão).
/Zc:char8_t[-] Habilitar ou desabilitar o suporte literal nativo u8 do C++20 como const char8_t (desativada por padrão, exceto em /std:c++20).
/Zc:enumTypes[-] Habilite regras C++ padrão para enum dedução de tipo (desativada por padrão).
/Zc:externC[-] Aplicar regras Padrão C++ para funções extern "C" (implícitas para /permissive-).
/Zc:externConstexpr[-] Habilitar o vínculo externo para variáveis constexpr (desativada por padrão).
/Zc:forScope[-] Aplicar regras de escopo for Padrão do C++ (ativadas por padrão).
/Zc:gotoScope Impor regras padrão do C++ goto em torno da inicialização de variável local (implícita por /permissive-).
/Zc:hiddenFriend[-] Aplicar regras de amigo oculto padrão do C++ (implícitas por /permissive-)
/Zc:implicitNoexcept[-] Habilitar noexcept implícito em funções necessárias (ativada por padrão).
/Zc:inline[-] Remover funções ou dados não referenciados se forem COMDAT ou tiverem apenas vínculo interno (desativada por padrão).
/Zc:lambda[-] Habilitar o novo processador lambda para verificações sintáticas no modo de conformidade em lambdas genéricos.
/Zc:noexceptTypes[-] Aplicar regras noexcept do C++17 (ativadas por padrão no C++17 ou posterior).
/Zc:nrvo[-] Ative as elisões opcionais de copiar e mover (ativado por padrão em /O2, /permissive-ou /std:c++20 ou posterior).
/Zc:preprocessor[-] Usar o novo pré-processador em conformidade (desativada por padrão, exceto no C11/C17).
/Zc:referenceBinding[-] Um UDT temporário não será associado a uma referência lvalue não constante (desativada por padrão).
/Zc:rvalueCast[-] Aplicar regras de conversão de tipo explícita padrão do C++ (desativada por padrão).
/Zc:sizedDealloc[-] Habilitar funções de desalocação de tamanho global do C++14 (ativada por padrão).
/Zc:strictStrings[-] Desabilitar o literal de cadeia de caracteres para conversão char* ou wchar_t* (desativada por padrão).
/Zc:templateScope[-] Impor regras de sombreamento de parâmetro de modelo C++ padrão (desativadas por padrão).
/Zc:ternary[-] Aplicar regras de operador condicional em tipos operando (desativada por padrão).
/Zc:threadSafeInit[-] Habilitar a inicialização estática local thread-safe (ativada por padrão).
/Zc:throwingNew[-] Supor que operator new gere no caso de falha (desativada por padrão).
/Zc:tlsGuards[-] Gerar verificações de runtime para a inicialização da variável TLS (ativado por padrão).
/Zc:trigraphs Habilitar trígrafos (obsoleta, desativada por padrão).
/Zc:twoPhase[-] Use o comportamento de análise de modelo não conforme (em conformidade por padrão).
/Zc:wchar_t[-] wchar_t é um tipo nativo, não um typedef (ativada por padrão).
/Zc:zeroSizeArrayNew[-] Membro new/delete de chamada para matrizes de objetos de tamanho zero (ativado por padrão).
/Ze Preterido. Habilita extensões de linguagem C89.
/Zf Melhora o tempo de geração do PDB em builds paralelos.
/ZH:[MD5|SHA1|SHA_256] Especifica MD5, SHA-1 ou SHA-256 para somas de verificação em informações de depuração.
/ZI Inclui informações de depuração em um banco de dados do programa compatível com Editar e Continuar. (apenas x86)
/Zi Gera informações completas de depuração.
/Zl Remove o nome da biblioteca padrão do arquivo .obj.
/Zm Especifica o limite de alocação da memória do cabeçalho pré-compilado.
/Zo[-] Gerar informações de depuração mais avançadas para o código otimizado.
/Zp[n] Empacota membros da estrutura.
/Zs Verifica apenas a sintaxe.
/ZW Produz um arquivo de saída a ser executado no Windows Runtime.

17.10 Essa opção está disponível a partir do Visual Studio 2022 versão 17.10.

Confira também

Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC