Opções de compilador listadas por categoria
Este artigo contém uma lista categórica de opções do compilador. Para obter uma lista em ordem alfabética, consulte Opções do compilador listadas em ordem alfabética.
Otimização
Opção | Finalidade |
---|---|
/favor:<blend|AMD64|INTEL64|ATOM> |
Produz código otimizado para uma arquitetura específica ou um intervalo de arquiteturas. |
/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. |
/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) |
Geração de código
Opção | Finalidade |
---|---|
/arch |
Requisitos mínimos de arquitetura da CPU |
/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. |
/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). |
/feature |
Habilite recursos de arquitetura.17.10 |
/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. |
/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. |
/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 _penter . |
/GH |
Chama a função de gancho _pexit . |
/GL[-] |
Habilita a otimização de todo o programa. |
/Gm[-] |
Preterido. Habilita recompilação mínima. |
/Gr |
Usa a convenção de chamada __fastcall . (apenas x86) |
/GR[-] |
Habilita RTTI (informações de tipo de tempo de execução). |
/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 /EH em vez disso. |
/Gy[-] |
Habilita a vinculação no nível de função. |
/Gz |
Usa a convenção de chamada __stdcall . (apenas x86) |
/GZ |
Preterido. Habilita as verificações rápidas. (Mesmo que /RTC1 ) |
/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. |
/jumptablerdata |
Coloque tabelas de salto de instrução de caso de alternância .rdata na seção. |
/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 |
Habilita a paralelização automática de loops. |
/Qpar-report:n |
Habilita os níveis de relatório para paralelização automática. |
/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. |
/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. |
/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. |
Arquivos de saída
Opção | Finalidade |
---|---|
/doc |
Processa comentários de documentação para um arquivo XML. |
/FA |
Configura um arquivo de listagem de assembly. |
/Fa |
Cria um arquivo de listagem de assembly. |
/Fd |
Renomeia o arquivo de banco de dados do programa. |
/Fe |
Renomeia o arquivo executável. |
/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. |
/FR , /Fr |
Arquivos de navegador .sbr gerados por nome. /Fr foi preterido. |
/Ft<dir> |
Local dos arquivos de cabeçalho gerados para #import . |
Pré-processador
Opção | Finalidade |
---|---|
/AI<dir> |
Especifica um diretório de pesquisa para resolver referências de arquivo passadas para a diretiva #using . |
/C |
Preserva comentários durante o pré-processamento. |
/D<name>{=|#}<text> |
Define constantes e macros. |
/E |
Copia a saída do pré-processador para a saída padrão. |
/EP |
Copia a saída do pré-processador para a saída padrão. |
/FI<file> |
Pré-processa o arquivo de inclusão especificado. |
/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. |
/I<dir> |
Pesquisa um diretório para incluir arquivos. |
/P |
Grava a saída do pré-processador em um arquivo. |
/PD |
Imprimir todas as definições de macro. |
/PH |
Gerar #pragma file_hash durante o pré-processamento. |
/U<name> |
Remove uma macro predefinida. |
/u |
Remove todas as macros predefinidas. |
/X |
Ignora o diretório de inclusão padrão. |
Unidades/módulos de cabeçalho
Opção | Finalidade |
---|---|
/exportHeader |
Criar os arquivos de unidades de cabeçalho (.ifc ) especificados pelos argumentos de entrada. |
/headerUnit |
Especificar onde localizar o arquivo de unidade de cabeçalho (.ifc ) para o cabeçalho especificado. |
/headerName |
Compilar uma unidade de cabeçalho com base no cabeçalho especificado. |
/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. |
/reference |
Use o módulo IFC nomeado. |
/scanDependencies |
Listar dependências de unidade de módulo e cabeçalho no formulário JSON Padrão C++. |
/sourceDependencies |
Listar todas as dependências de nível de origem. |
/sourceDependencies:directives |
Listar dependências de unidade de módulo e cabeçalho. |
/translateInclude |
Tratar #include como import . |
Idioma
Opção | Finalidade |
---|---|
/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. |
/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) |
/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. |
/permissive[-] |
Definir o modo de conformidade padrão. |
/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 mais recentes do rascunho. |
/vd{0|1|2} |
Suprime ou habilita membros da classe vtordisp ocultos. |
/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. |
/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__ |
Habilite 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 tipos base inferidos enum (Off b y default, not implied by /permissive- ). |
/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 C++ goto padrão 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[-] |
Habilite elisões opcionais de cópia e movimentação (ativadas por padrão em /O2 , /permissive- ou /std:c++20 posteriores). |
/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 (desativado 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[-] |
Chamar membro new /delete para matrizes de tamanho 0 de objetos (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 . |
/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. |
Vinculação
Opção | Finalidade |
---|---|
/F |
Define o tamanho da pilha. |
/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. |
/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. |
Diversos
Opção | Finalidade |
---|---|
/? |
Lista as opções do compilador. |
@ |
Especifica um arquivo de resposta. |
/analyze |
Habilita a análise de código. |
/bigobj |
Aumenta o número de seções endereçáveis em um arquivo .obj. |
/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. |
/errorReport |
Preterido. As configurações do Relatório de Erros do Windows (WER) controlam o relatório de erros. |
/execution-charset |
Definir o conjunto de caracteres de execução. |
/fastfail |
Habilitar o modo de falha rápida. |
/FC |
Exibe o caminho completo dos arquivos de código-fonte passados para cl.exe no texto de diagnóstico. |
/FS |
Força a serialização de gravações no arquivo PDB por meio de MSPDBSRV.EXE. |
/H |
Preterido. Restringe o tamanho de nomes externos (públicos). |
/HELP |
Lista as opções do compilador. |
/J |
Altera o tipo char padrã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. |
/MP |
Cria vários arquivos de origem ao mesmo tempo. |
/nologo |
Suprime a exibição da faixa de logon. |
/presetPadding |
Inicializar em zero o preenchimento para tipos de classe baseados em pilha. |
/showIncludes |
Exibe uma lista de todos os arquivos de inclusão durante a compilação. |
/source-charset |
Definir conjunto de caracteres de origem. |
/Tc |
Especifica um arquivo de origem do C. |
/TC |
Especifica que todos os arquivos de origem são C. |
/Tp |
Especifica um arquivo de origem do C++. |
/TP |
Especifica que todos os arquivos de origem são C++. |
/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. |
/volatileMetadata |
Gerar metadados em acessos de memória volátil. |
/Yc |
Criar arquivo .PCH . |
/Yd |
Preterido. Coloca informações de depuração completas em todos os arquivos de objeto. Use /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. |
/Y- |
Ignora todas as outras opções de compilador do cabeçalho pré-compilado na compilação atual. |
/Zm |
Especifica o limite de alocação da memória do cabeçalho pré-compilado. |
Diagnósticos
Opção | Finalidade |
---|---|
/diagnostics:caret[-] |
Formato de diagnóstico: imprime a coluna e a linha de origem indicada. |
/diagnostics:classic |
Usar o formato de diagnóstico herdado. |
/diagnostics |
Formato de diagnóstico: imprime informações da coluna. |
/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. |
/options:strict |
Opções do compilador não reconhecidas são erros. |
/sdl |
Habilitar mais recursos de segurança e avisos. |
/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. |
Opções Experimentais
As opções experimentais só podem ser compatíveis com determinadas versões do compilador. Eles também podem se comportar de forma diferente em diferentes versões do compilador. Geralmente, a melhor ou única documentação para opções experimentais está no Blog da Equipe do Microsoft C++.
Opção | Finalidade |
---|---|
/experimental:log |
Permite a saída SARIF estruturada experimental. |
/experimental:module |
Habilitar o suporte a módulo experimental. |
Opções do compilador preteridas e removidas
Opção | Finalidade |
---|---|
/clr:noAssembly |
Preterido. Use /LN (Criar módulo MSIL). |
/errorReport |
Preterido. O relatório de erros é controlado por configurações do WER (Relatório de Erros do Windows). |
/experimental:preprocessor |
Preterido. Habilita o suporte experimental ao pré-processador em conformidade. Use /Zc:preprocessor . |
/Fr |
Preterido. Cria um arquivo de informações de navegação sem variáveis locais. |
/Ge |
Preterido. Ativa investigações de pilha. Ativado por padrão. |
/Gm |
Preterido. Habilita recompilação mínima. |
/GX |
Preterido. Habilita o tratamento síncrono de exceções. Use /EH em vez disso. |
/GZ |
Preterido. Habilita as verificações rápidas. Use /RTC1 em vez disso. |
/H |
Preterido. Restringe o tamanho de nomes externos (públicos). |
/Og |
Preterido. Usa otimizações globais. |
/QIfist |
Preterido. Uma vez usado para especificar como converter de um tipo de ponto flutuante em um tipo integral. |
/V |
Preterido. Define a cadeia de caracteres da versão de arquivo .obj . |
/Wp64 |
Obsoleto. Detecta problemas de portabilidade de 64 bits. |
/Yd |
Preterido. Coloca informações de depuração completas em todos os arquivos de objeto. Use /Zi em vez disso. |
/Zc:forScope- |
Preterido. Desabilita conformidade para escopo de loop. |
/Ze |
Preterido. Habilita extensões de linguagem. |
/Zg |
Removido no Visual Studio 2015. Gera protótipos de função. |
17.10 Essa opção está disponível a partir do Visual Studio 2022 versão 17.10.
Confira também
Referência de compilação C/C++
Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários