Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
As seguintes páginas de propriedades são encontradas em Propriedades do projeto>Propriedades>>C/C++:
Propriedades gerais em C/C++
Diretórios de Inclusão Adicionais
Especifica um ou mais diretórios a serem adicionados ao caminho de inclusão. Diretórios separados com ponto e vírgula (;) se houver mais do que um. Define a opção de /I compilador (Diretórios adicionais de inclusão).
Diretórios Adicionais #using
Especifica um ou mais diretórios a serem pesquisados para resolver nomes passados para uma #using diretiva. Separe diretórios com um ponto e vírgula (;) se adicionar mais de um. Define a opção do /AI compilador.
Diretórios de IMC adicionais
Especifica um ou mais diretórios a serem pesquisados para resolver os nomes que são passados para uma diretiva import. Separe os diretórios com ponto e vírgula (;) caso adicione mais de um. Define a opção do /ifcSearchDir[path] compilador.
Dependências adicionais do módulo
Especifica um ou mais módulos a serem usados para resolver nomes passados para uma import diretiva. Separe os diretórios com um ponto e vírgula (;) se adicionar mais do que um diretório. Define a opção do /reference compilador.
Dependências adicionais da unidade de cabeçalho
Especifica uma ou mais unidades de cabeçalho a serem usadas para resolver nomes passados para uma import diretiva de cabeçalho. Separe os diretórios com ponto e vírgula (;) se adicionar mais do que um diretório. Define a opção do /headerUnit compilador.
Analisar Fontes para Dependências de Módulo
Quando esta propriedade está definida como Sim, o compilador analisa todas as fontes C++, não apenas as fontes da interface do módulo e das unidades de cabeçalho, para dependências de módulos e unidades de cabeçalho. O sistema de compilação constrói o gráfico de dependências completas, o que garante que todos os módulos importados e unidades de cabeçalho sejam construídos antes de compilar os arquivos que dependem deles. Quando Scan Sources for Module Dependencies e Translate Includes to Imports são ambos definidos como Sim, qualquer ficheiro de cabeçalho especificado num header-units.json ficheiro no mesmo diretório do ficheiro de cabeçalho é compilado numa unidade de cabeçalho.
Os ficheiros que têm a extensão .ixx, e os ficheiros que têm a propriedade propriedades do ficheiro>C/C++>Advanced>Compile As definida como Compile as C++ Header Unit (/exportHeader), são sempre analisados.
Os arquivos que têm a extensão .ixx, e os arquivos que têm suas propriedades de ficheiro>propriedades C/C++> com a propriedade Compile As definida como Compile as C++ Header Unit (/exportHeader), são sempre analisados.
Traduza "Includes" para "Imports"
Quando esta propriedade está definida como Sim, o compilador trata uma #include diretiva como uma import diretiva se certas condições forem cumpridas: O ficheiro de cabeçalho é especificado num header-units.json ficheiro no mesmo diretório, e uma unidade de cabeçalho compilada (um .ifc ficheiro) está disponível para o ficheiro de cabeçalho. Caso contrário, o arquivo de cabeçalho é tratado como um arquivo normal #include. O header-units.json ficheiro é usado para construir unidades de cabeçalho para cada #include sem duplicação de símbolo. Quando Translate Includes to Imports e Scan Sources for Module Dependencies estão ambos definidos como Yes, o compilador encontra automaticamente todos os ficheiros de cabeçalho que podem ser compilados em unidades de cabeçalho. Esta propriedade define a opção do /translateInclude compilador.
Formato de informações de depuração
Especifica o tipo de informações de depuração geradas pelo compilador. Esta propriedade requer configurações de vinculador compatíveis. Define /Z7, /Zi, /ZI (Debug information format) opções do compilador.
Choices
-
Nenhum (
None) - Não produz informação de depuração, por isso a compilação pode ser mais rápida. -
Compatível com C7 (
OldStyle) - Produz ficheiros objeto que contêm toda a informação simbólica de depuração. Não é produzido nenhum ficheiro PDB. -
Base de Dados de Programas (
ProgramDatabase) - Produz uma base de dados de programas (PDB) que contém informações sobre tipos e informações simbólicas de depuração para uso com o depurador. As informações de depuração simbólica incluem os nomes e tipos de variáveis e funções e números de linha. -
Base de Dados de Programas para Editar e Continuar (
EditAndContinue) - Produz uma base de dados de programas, conforme descrito anteriormente, num formato que suporta a funcionalidade Editar e Continuar .
Suporte apenas minha depuração de código
Adiciona código de suporte para habilitar a depuração Just My Code nesta unidade de compilação. Define /JMC.
Suporte à Depuração Dinâmica em C++
(Pré-visualização) Define a flag /dynamicdeopt do compilador para ativar a Depuração Dinâmica em C++. Coloque pontos de interrupção desotimizados e intervenha em qualquer lugar com desotimização de funções sob demanda. Use este modo para depurar código otimizado.
Suporte a RunTime em Linguagem Comum
Utilize o serviço de runtime .NET. Este interruptor é incompatível com outros interruptores. Consulte a documentação sobre a /clr família de interruptores para mais detalhes.
Choices
- Sem suporte para o Common Language Runtime - Sem suporte para o Common Language Runtime.
- Common Language RunTime Support - Cria metadados para seu aplicativo que podem ser consumidos por outros aplicativos CLR. Também permite que seu aplicativo consuma tipos e dados nos metadados de outros componentes CLR.
- Pure MSIL Common Language RunTime Support - Produz um arquivo de saída somente MSIL sem código executável nativo, embora possa conter tipos nativos compilados para MSIL.
- Safe MSIL Common Language RunTime Support - Produz um arquivo de saída somente MSIL (sem código executável nativo) e verificável.
Consumir a extensão do Tempo de Execução do Windows
Consuma as extensões da linguagem Windows Runtime. Define /ZW.
Suprimir banner de inicialização
Suprime a exibição do banner de logon quando o compilador é iniciado e a exibição de mensagens informativas durante a compilação.
Nível de alerta
Selecione o quão rigoroso você deseja que o compilador seja sobre erros de código. Define /W0 - /W4.
Choices
- Desativar todos os avisos - O nível 0 desativa todos os avisos.
- Nível 1 - Nível 1 exibe avisos severos. Nível 1 é o nível de aviso padrão na linha de comando.
- Nível 2 - Nível 2 exibe todos os avisos de nível 1 e avisos menos graves do que o nível 1.
- Nível 3 - Nível 3 exibe todos os avisos de nível 2 e todos os outros avisos recomendados para fins de produção.
- Nível 4 - Nível 4 mostra todos os avisos e avisos informativos de nível 3, que na maioria dos casos podem ser ignorados em segurança.
- EnableAllWarnings - Habilita todos os avisos, incluindo os desativados por padrão.
Tratar avisos como erros
Trata os avisos do compilador como erros. Para um projeto novo, pode ser melhor usar /WX em todas as compilações. Resolva todos os avisos para minimizar defeitos de código difíceis de encontrar.
Versão de aviso
Oculte avisos introduzidos após uma versão específica do compilador. Define /Wv:xx[.yy[.zzzzz]].
Formato de diagnóstico
Permite diagnósticos avançados, com informações de coluna e contexto de origem em mensagens de diagnóstico.
Choices
- Caret - Fornece informações de coluna na mensagem de diagnóstico. Também apresenta a linha relevante de código-fonte com um acento circunflexo que indica a coluna com erro.
- Informações da coluna - Além disso, indica o número da coluna na linha em que o diagnóstico é emitido, quando aplicável.
- Clássico - Emite apenas as mensagens de diagnóstico anteriores e concisas com o número da linha.
Verificações SDL
Verificações adicionais recomendadas pelo Ciclo de Vida do Desenvolvimento de Segurança (SDL). Inclui ativar funcionalidades adicionais de geração segura de código e permite avisos adicionais relevantes para a segurança como erros. Conjuntos /sdl, /sdl-.
Compilação multiprocessador
Habilite a compilação com vários processadores. Define a opção do /MP compilador.
Ativar o Address Sanitizer
Compila e vincula o programa com a instrumentação AddressSanitizer. Esta propriedade atualmente suporta compilações de destino x86 e x64. Define a opção do /fsanitize compilador.
Ativar Suporte ao Fuzzer (Experimental)
Compila programas com o Fuzzer. Ativa o AddressSanitizer para melhores resultados. Atualmente disponível para versões x86 e x64. Define /fsanitize=fuzzer.
Propriedades de otimização em C/C++
Optimization
Selecione uma opção para otimização de código.
Selecione Personalizado para usar opções de otimização específicas. Conjuntos /Od, /O1, /O2.
Choices
- Personalizado - Otimização personalizada.
- Desativado - Desative a otimização.
-
Otimização máxima (Privilegiar o tamanho) - Equivalente a
/Os /Oy /Ob2 /Gs /GF /Gy. -
Otimização máxima (Favor Speed) - Equivalente a
/Oi /Ot /Oy /Ob2 /Gs /GF /Gy. -
Otimizações (Favorecer a velocidade) - Equivalente a
/Oi /Ot /Oy /Ob2.
Expansão da função em linha
Selecione o nível de expansão da função embutida para a compilação. Define /Ob.
Choices
- Predefinição
- Desativado - Desabilita a expansão em linha, que está ativada por padrão.
-
Somente __inline - Expande apenas as funções marcadas como
inline,__forceinlineou__inline. Ou, em uma função de membro C++, definida dentro de uma declaração de classe. -
Qualquer Adequado - Expande funções marcadas como
inlineou__inlinee qualquer outra função que o compilador escolher. (A expansão ocorre a critério do compilador. Esta expansão selecionada pelo compilador é frequentemente referida como autoinlining.)
Ativar funções intrínsecas
Permite funções intrínsecas. Usar funções intrínsecas gera código mais rápido, mas possivelmente maior. Define /Oi.
Prefira o tamanho ou a velocidade
Se preferir o tamanho do código ou a velocidade do código.
Global Optimization tem de estar ativado. Conjuntos /Ot, /Os.
Choices
- Favorecer código pequeno - Minimiza o tamanho de EXEs e DLLs instruindo o compilador a favorecer o tamanho em detrimento da velocidade.
- Favorecer código rápido - Maximiza a velocidade de EXEs e DLLs instruindo o compilador a favorecer a velocidade em relação ao tamanho. (Este valor é o padrão quando as otimizações estão ativadas.)
- Nem - Sem otimização de tamanho e velocidade.
Omitir ponteiros de quadro
Impede a criação de ponteiros de quadro na pilha de chamadas.
Ativar otimizações de Fiber-Safe
Permite otimizações compatíveis com fibras para aplicações que utilizam fibras para aceder a armazenamento local por thread. Define /GT.
Otimização de todo o programa
Permite otimizações entre módulos ao adiar a geração do código para o tempo de ligação. Requer a opção linker Link Time Code Generation. Define /GL.
Propriedades do pré-processador C/C++
Definições do pré-processador
Define símbolos de pré-processamento para seu arquivo de origem.
Remover definições de pré-processador
Especifica uma ou mais desdefinições de pré-processador. Define /U.
Desdefinir todas as definições do pré-processador
Remova todas as definições de valores de pré-processador anteriormente definidas. Define /u.
Ignorar caminhos de inclusão padrão
Impede que o compilador procure arquivos include em diretórios especificados nas variáveis de ambiente INCLUDE.
Pré-processamento para um arquivo
Pré-processa arquivos de origem C e C++ e grava a saída pré-processada em um arquivo. Essa opção suprime a compilação e não produz um .obj arquivo.
Pré-processar para suprimir os números de linha
Pré-processar sem diretiva #line.
Manter comentários
Ative esta opção para preservar os comentários de origem em C e C++ (// e /* ... */) em .i ficheiros e outras saídas do pré-processador. O pré-processador remove comentários por defeito.
Requer definir pelo menos uma das opções de pré-processamento . Define /C.
Utilizar Pré-processador Padrão Conforme
Use um pré-processador padrão conforme (/Zc:preprocessor). Atualmente implícito por /std:c11 e versões posteriores. Para usar o pré-processador legado, defina esta propriedade para Nº.
Propriedades de Geração de Código C/C++
Habilitar agrupamento de cadeias de caracteres
Ative esta propriedade para ativar o agrupamento de cadeias, que combina cadeias idênticas numa única cópia só de leitura no programa compilado. Isto pode resultar em programas mais pequenos.
/O1, /O2, e /ZI definir automaticamente a /GF opção.
Habilite a reconstrução mínima
Permite uma reconstrução mínima, que determina se deve recompilar ficheiros fonte C++ que incluem ficheiros de cabeçalho (.h) contendo definições alteradas de classe C++.
Habilitar exceções C++
Especifica o modelo de tratamento de exceções a ser usado pelo compilador.
Choices
-
Sim com exceções SEH - O modelo de tratamento de exceções que captura exceções assíncronas (estruturadas) e síncronas (C++). Define
/EHa. -
Sim - O modelo de tratamento de exceções que captura apenas exceções em C++ e configura o compilador para assumir que
extern "C"as funções nunca lançam uma exceção em C++. Define/EHsc. -
Sim com funções Extern C - O modelo de tratamento de exceções que capta apenas exceções de C++ e configura o compilador para assumir que as funções
extern "C"lançam efetivamente uma exceção. Define/EHs. - Não - Sem tratamento de exceção.
Verificação de tipo menor
Permite verificar a conversão para tipos mais pequenos. Incompatível com qualquer tipo de otimização que não seja debug. Define /RTCc.
Verificações básicas de tempo de execução
Ativa verificações básicas de erro em tempo de execução. Incompatível com qualquer tipo de otimização que não seja debug. Conjuntos /RTCs, /RTCu, /RTC1.
Choices
- Stack Frames - Ativa a verificação de erros em tempo de execução de stack frames.
- Variáveis não inicializadas - Relata quando uma variável é usada sem ter sido inicializada.
-
Ambos (/RTC1, equiv. a /RTCsu) - Equivalente a
/RTCsu. - Padrão - Verificações de tempo de execução padrão.
Biblioteca de tempo de execução
Especifica uma biblioteca em tempo de execução para ligação. Conjuntos /MT, /MTd, /MD, /MDd.
Choices
- Multi-threaded - Faz com que a sua aplicação use a versão multithread e estática da biblioteca de runtime.
-
Depuração Multi-threaded - Definem
_DEBUGe_MT. Esta opção também faz com que o compilador coloque o nome da biblioteca LIBCMTD.lib no.objficheiro para que o linker o useLIBCMTD.libpara resolver símbolos externos. -
DLL multithread - Faz com que a sua aplicação utilize a versão multithread, específica para DLL, da biblioteca de execução. Define
_MTe_DLLfaz com que o compilador coloque o nome da biblioteca MSVCRT.lib no.objarquivo. -
DLL de depuração multithread - Define
_DEBUG,_MTe_DLLe faz com que a sua aplicação utilize a versão de depuração multithread específica de DLL da biblioteca de runtime. Também faz com que o compilador coloque o nome da biblioteca MSVCRTD.lib no.objficheiro.
Alinhamento de membros da Struct
Especifica limites de 1, 2, 4, 8 ou 16 bytes para o alinhamento dos membros da struct. Define /Zp.
Choices
-
1 Byte - Empacota estruturas em limites de um byte. O mesmo que
/Zp. - 2 Bytes - Empacota estruturas em limites de dois bytes.
- 4 Bytes - Empacota estruturas em limites de quatro bytes.
- 8 Bytes - Empacota estruturas em limites de oito bytes (padrão).
- 16 Bytes - Embala estruturas em limites de 16 bytes.
- Padrão - Configurações de alinhamento padrão.
Especifica limites de 1, 2, 4 ou 8 bytes para o alinhamento dos membros da struct. Define /Zp.
Choices
-
1 Byte - Empacota estruturas em limites de um byte. O mesmo que
/Zp. - 2 Bytes - Empacota estruturas em limites de dois bytes.
- 4 Bytes - Empacota estruturas em limites de quatro bytes.
- 8 Bytes - Empacota estruturas em limites de oito bytes (padrão).
- Padrão - Configurações de alinhamento padrão.
Verificação de segurança
Ajuda a detetar excessos de escrita no buffer da pilha, que os atacantes podem explorar para comprometer a sua aplicação.
Choices
Protetor de fluxo de controle
Ajuda a detetar tentativas de despacho para blocos ilegais de código.
Choices
-
Sim - Ativar o Control Flow Guard. Define
/guard:cf. - No
Ativar ligação ao nível da função
Permite que o compilador empacote funções individuais na forma de funções empacotadas (COMDATs). Necessário para editar e continuar a trabalhar. Define /Gy.
Habilitar a geração paralela de código
Permite que o compilador gere código paralelo para loops identificados usando #pragma loop(hint_parallel[(n)]) quando a otimização está ativada.
Ativar conjunto de instruções avançado
Habilite o uso de instruções encontradas em processadores que suportam conjuntos de instruções avançados. Por exemplo, as melhorias SSE, SSE2, AVX e AVX2 para IA-32, e as melhorias AVX e AVX2 para x64.
/arch:SSE está disponível apenas para versões x86.
/arch:SSE2 está disponível para versões x86 e x64 e é o padrão para ambas as arquiteturas. O uso de instruções aprimoradas pode ser desativado com /arch:IA32. Para obter mais informações, consulte /arch (x86), /arch (x64), /arch (ARM64)e /arch (ARM).
Choices
-
Streaming de Extensões SIMD (x86) - Permite Streaming de Extensões SIMD. Define
/arch:SSE. -
Streaming SIMD Extensions 2 (X86) - Ativa Streaming SIMD Extensions 2. Define
/arch:SSE2. -
Extensões Vetoriais Avançadas (X86/X64) - Permite extensões vetoriais avançadas. Define
/arch:AVX. -
Extensões Vetoriais Avançadas 2 (X86/X64) - Permite Extensões Vetoriais Avançadas 2. Define
/arch:AVX2. -
Extensões Vetoriais Avançadas 512 (X86/X64) - Ativam as Extensões Vetoriais Avançadas 512. Define
/arch:AVX512. -
Advanced Vector Extensions AVX10.1 (X86/X64) - Ativa a Advanced Vector Extensions 10 versão 1. Define
/arch:AVX10.1. -
Advanced Vector Extensions AVX10.2 (X86/X64) - Ativa Advanced Vector Extensions 10 versão 2. Define
/arch:AVX10.2. -
Extensões de Virtualização (ARM). Permite extensões de virtualização ARM. Define
/arch:ARMv7VE. -
Instruções ARM VFPv4 (ARM). Ativa as instruções ARM VFPv4. Define
/arch:VFPv4. -
Requisitos de extensão de CPU ARMv8.0-A (ARM64). Ativa os requisitos ARMv8.0-A. Define
/arch:arm8.0. -
Requisitos de extensão de CPU ARMv8.1-A (ARM64). Ativa os requisitos ARMv8.1-A. Define
/arch:arm8.1. -
Requisitos de extensão do CPU ARMv8.2-A (ARM64). Ativa os requisitos do ARMv8.2-A. Define
/arch:arm8.2. -
Requisitos de extensão de CPU ARMv8.3-A (ARM64). Ativa os requisitos do ARMv8.3-A. Define
/arch:arm8.3. -
Requisitos de extensão do CPU ARMv8.4-A (ARM64). Ativa os requisitos ARMv8.4-A. Define
/arch:arm8.4. -
Requisitos de extensão de CPU ARMv8.5-A (ARM64). Ativa os requisitos ARMv8.5-A. Define
/arch:arm8.5. -
Requisitos de extensão de CPU ARMv8.6-A (ARM64). Ativa os requisitos ARMv8.6-A. Define
/arch:arm8.6. -
Requisitos de extensão de CPU ARMv8.7-A (ARM64). Ativa os requisitos do ARMv8.7-A. Define
/arch:arm8.7. -
Requisitos de extensão de CPU ARMv8.8-A (ARM64). Ativa os requisitos do ARMv8.8-A. Define
/arch:arm8.8. -
Sem Instruções Melhoradas - Desativa as instruções melhoradas para builds x86. Define
/arch:IA32. -
Não Definir - Não define explicitamente uma
/archopção.
Habilite o uso de instruções encontradas em processadores que suportam conjuntos de instruções avançados. Por exemplo, as melhorias SSE, SSE2, AVX e AVX2 para IA-32, e as melhorias AVX e AVX2 para x64. Atualmente /arch:SSE e /arch:SSE2 só estão disponíveis quando se constrói para a arquitetura x86. Se nenhuma opção for especificada, o compilador usará instruções encontradas em processadores que suportam SSE2. O uso de instruções aprimoradas pode ser desativado com /arch:IA32. Para obter mais informações, consulte /arch (x86), /arch (x64), /arch (ARM64)e /arch (ARM).
Choices
-
Streaming de Extensões SIMD (x86) - Permite Streaming de Extensões SIMD. Define
/arch:SSE. -
Streaming SIMD Extensions 2 (X86) - Ativa Streaming SIMD Extensions 2. Define
/arch:SSE2. -
Extensões Vetoriais Avançadas (X86/X64) - Permite extensões vetoriais avançadas. Define
/arch:AVX. -
Extensões Vetoriais Avançadas 2 (X86/X64) - Permite Extensões Vetoriais Avançadas 2. Define
/arch:AVX2. -
Extensões Vetoriais Avançadas 512 (X86/X64) - Ativam as Extensões Vetoriais Avançadas 512. Define
/arch:AVX512. -
Advanced Vector Extensions AVX10.1 (X86/X64) - Ativa a Advanced Vector Extensions 10 versão 1. Define
/arch:AVX10.1. -
Extensões de Virtualização (ARM). Permite extensões de virtualização ARM. Define
/arch:ARMv7VE. -
Instruções ARM VFPv4 (ARM). Ativa as instruções ARM VFPv4. Define
/arch:VFPv4. -
Requisitos de extensão de CPU ARMv8.0-A (ARM64). Ativa os requisitos ARMv8.0-A. Define
/arch:arm8.0. -
Requisitos de extensão de CPU ARMv8.1-A (ARM64). Ativa os requisitos ARMv8.1-A. Define
/arch:arm8.1. -
Requisitos de extensão do CPU ARMv8.2-A (ARM64). Ativa os requisitos do ARMv8.2-A. Define
/arch:arm8.2. -
Requisitos de extensão de CPU ARMv8.3-A (ARM64). Ativa os requisitos do ARMv8.3-A. Define
/arch:arm8.3. -
Requisitos de extensão do CPU ARMv8.4-A (ARM64). Ativa os requisitos ARMv8.4-A. Define
/arch:arm8.4. -
Requisitos de extensão de CPU ARMv8.5-A (ARM64). Ativa os requisitos ARMv8.5-A. Define
/arch:arm8.5. -
Requisitos de extensão de CPU ARMv8.6-A (ARM64). Ativa os requisitos ARMv8.6-A. Define
/arch:arm8.6. -
Requisitos de extensão de CPU ARMv8.7-A (ARM64). Ativa os requisitos do ARMv8.7-A. Define
/arch:arm8.7. -
Requisitos de extensão de CPU ARMv8.8-A (ARM64). Ativa os requisitos do ARMv8.8-A. Define
/arch:arm8.8. -
Sem Instruções Melhoradas - Desativa as instruções melhoradas para builds x86. Define
/arch:IA32. -
Não Definir - Não define explicitamente uma
/archopção.
Choices
-
Streaming SIMD Extensions - Streaming SIMD Extensions. Conjuntos
/arch:SSE -
Streaming SIMD Extensões 2 - Streaming SIMD Extensões 2. Conjuntos
/arch:SSE2 -
Advanced Vetor Extensions - Extensões vetoriais avançadas. Conjuntos
/arch:AVX -
Advanced Vetor Extensions 2 - Extensões vetoriais avançadas 2. Conjuntos
/arch:AVX2 -
Sem instruções melhoradas - Sem instruções melhoradas. Conjuntos
/arch:IA32 - Não definido - não definido.
Ativar Comprimento Vetorial
Permitir escolher o comprimento vetorial para as flags /arch:AVX512 e /arch:AVX10.x. Os valores permitidos são 256 e 512 bits (X86/X64).
Modelo de Ponto Flutuante
Define o modelo de ponto flutuante. Conjuntos /fp:precise, /fp:strict, /fp:fast.
Choices
- Preciso - Padrão. Melhora a consistência dos testes de ponto flutuante para igualdade e desigualdade.
-
Estrito - O modelo de ponto flutuante mais rigoroso.
/fp:strictfaz com quefp_contractfique desligado efenv_accessfique ligado./fp:exceptestá implícito e pode ser desativado especificando/fp:except-explicitamente . Quando usado com/fp:except-o/fp:strict, impõe semânticas rigorosas de ponto flutuante, mas sem considerar eventos excecionais. - Rápido - Cria o código mais rápido na maioria dos casos.
Ativar exceções de ponto flutuante
Modelo de exceção de ponto flutuante confiável. As exceções serão levantadas imediatamente após serem acionadas. Define /fp:except.
Criar imagem Hotpatchable
Quando o hotpatching está ativado, o compilador garante que a primeira instrução de cada função seja de dois bytes, conforme necessário para o hot patching. Define /hotpatch.
Mitigação do espectro
Mitigações do Spectre para CVE 2017-5753. Define /Qspectre.
Choices
- Ativado - Ativar a mitigação para Spectre para CVE 2017-5753.
- Todas as Cargas - Ativar a mitigação do Spectre em todas as cargas.
- Todas as Cargas de Fluxo de Controlo - Ativar a mitigação Spectre nas cargas de fluxo de controlo.
- Desativado - Não definido.
Mitigação do espectro
Mitigações do Spectre para CVE 2017-5753. Define /Qspectre.
Choices
- Ativada - Ativar a mitigação de Spectre para CVE 2017-5753.
- Desativado - Não definido.
Ativar a Mitigação de Erratas Intel JCC
Mitigação de software para o impacto no desempenho causado pela atualização do microcódigo erratum Intel JCC. Define /QIntel-jcc-erratum.
Ativar Metadados de Continuação de EH
Gera uma lista ordenada de todos os alvos válidos de continuação de tratamento de exceções para um binário, usado em tempo de execução para validação RIP. Atualmente disponível para builds x64. Define /guard:ehcont.
Habilitar Retornos Assinados
Permite devoluções assinadas, que ajudam a detetar e prevenir tentativas de despacho para blocos ilegais a partir de devoluções de função. Atualmente disponível para versões ARM64. Define /guard:signret.
Propriedades da linguagem C/C++
Desativar extensões de idioma
Suprime ou habilita extensões de idioma. Define /Za.
Trate WChar_t como tipo nativo
Quando ativa esta propriedade, o tipo wchar_t torna-se um tipo nativo que corresponde a __wchar_t , da mesma forma que short corresponde a __int16.
/Zc:wchar_t está ativado por padrão.
Conformidade de força no escopo For Loop
Implementa o comportamento C++ padrão para os for loops de instrução com extensões da Microsoft. Define /Za, /Ze (Desativar extensões de idioma.
/Zc:forScope está ativado por padrão.
Remover código e dados não referenciados
Quando ativa esta propriedade, o compilador deixa de gerar informação de símbolos para código e dados não referenciados.
Aplicar regras de conversão de tipo
Usado para identificar um tipo de referência rvalue como resultado de uma operação de cast de acordo com o padrão C++11.
Ativar informações de tipo Run-Time
Adiciona código para verificar tipos de objetos C++ em tempo de execução (informação de tipos de execução, ou RTTI). Conjuntos /GR, /GR-.
Suporte OpenMP
Habilita extensões de linguagem OpenMP 2.0. Define /openmp.
Padrão da linguagem C++
Determina o padrão da linguagem C++ que o compilador aplica. O valor padrão não define uma opção padrão, então o compilador usa sua configuração padrão C++14. Se selecionares um valor específico, a opção correspondente /std do compilador é definida.
Choices
- Predefinido (ISO C++14 Standard)
- Norma ISO C++14 (/std:c++14)
- Norma ISO C++17 (/std:c++17)
- Norma ISO C++20 (/std:c++20)
- Pré-visualização - Norma ISO C++23 (/std:c++23preview)
- Prévia - Funcionalidades do mais recente rascunho de trabalho para C++ (/std:c++latest)
Padrão de linguagem C
Determina o padrão da linguagem C que o compilador aplica. O valor padrão não define uma opção padrão, então o compilador usa sua configuração MSVC herdada padrão. Se selecionares um valor específico, a opção correspondente /std do compilador é definida.
Choices
- Padrão (MSVC herdado)
- Norma ISO C11 (/std:c11)
- Norma ISO C17 (2018) (/std:c17)
- Pré-visualização - Funcionalidades do Último Rascunho de Trabalho em C (/std:clatest)
Modo de conformidade
Habilita ou suprime o modo de conformidade. Define /permissive-.
Habilitar módulos experimentais de biblioteca padrão C++
Suporte experimental para os módulos C++ TS e Standard Library.
Crie módulos de biblioteca padrão ISO C++23
A partir do Visual Studio 17.6, quando essa propriedade está habilitada e o C++ Language Standard está definido como /std:c++latest, os projetos do Microsoft C++ localizam e criam automaticamente módulos da biblioteca padrão ISO C++23. Isso permite que você faça import std ou import std.compat em seu código C++.
Propriedades de cabeçalhos pré-compilados em C/C++
Cabeçalho pré-compilado
Criar/usar cabeçalho pré-compilado
Permite a criação ou o uso de um cabeçalho pré-compilado durante a compilação. Conjuntos /Yc, /Yu.
Choices
-
Create - Instrui o compilador a criar um arquivo de cabeçalho (
.pch) pré-compilado que representa o estado de compilação em um determinado ponto. -
Use - Instrui o compilador a usar um arquivo de cabeçalho (
.pch) pré-compilado existente na compilação atual. - Não usar cabeçalhos pré-compilados - Não usar cabeçalhos pré-compilados.
Arquivo de cabeçalho pré-compilado
Especifica o nome do ficheiro de cabeçalho que o compilador usa para criar ou aceder a um cabeçalho pré-compilado. Conjuntos /Yc, /Yu.
Arquivo de saída de cabeçalho pré-compilado
Especifica o caminho ou nome do arquivo de cabeçalho pré-compilado gerado. Define /Fp.
Propriedades dos ficheiros de saída C/C++
Expandir fonte atribuída
Cria um ficheiro de listagem com atributos expandidos injetados no ficheiro de origem. Define /Fx.
Saída do Montador
Especifica o conteúdo do ficheiro de saída em linguagem assembly. Conjuntos /FA, /FAc, /FAs, /FAcs.
Choices
- Sem anúncio - Sem anúncio.
-
Listagem apenas de Assembly - Código Assembly:
.asm. -
Em linguagem assembly e código máquina - Código máquina e linguagem assembly:
.cod. -
Assemblagem com código-fonte - Código-fonte e código assembly:
.asm. -
Linguagem assembly, Código de Máquina e Código-fonte - Linguagem assembly, código de máquina e código-fonte:
.cod.
Usar Unicode para listagem do Assembler
Faz com que o arquivo de saída seja criado no formato UTF-8.
Localização da lista ASM
Especifica o caminho relativo ou nome do ficheiro de listagem ASM. Pode ser um nome de ficheiro ou diretório. Define /Fa.
Nome do ficheiro de saída do módulo
Localização do ficheiro de saída do módulo ou da unidade de cabeçalho (BMI). Pode ser um nome de ficheiro ou diretório. Define /ifcOutput[name].
Nome do ficheiro de dependências de módulos
Especifica o caminho e/ou o nome do ficheiro de dependências do módulo gerado. Define /scanDependencies[path].
Nome do arquivo do objeto
Especifica um nome para substituir o nome do arquivo de objeto padrão. Pode ser um nome de ficheiro ou diretório. Define /Fo.
Nome do arquivo do banco de dados do programa
Especifica um nome para um ficheiro PDB gerado pelo compilador. Também especifica o nome base para o ficheiro IDB gerado pelo compilador obrigatório. Pode ser um nome de ficheiro ou diretório. Define /Fd.
Gerar arquivos de documentação XML
Especifica que o compilador deve gerar arquivos de comentário da documentação XML (. XDC). Define /doc.
Nome do arquivo de documentação XML
Especifica o nome dos ficheiros de documentação XML gerados. Pode ser um nome de ficheiro ou diretório. Define /doc:<o nome>.
Gerar Ficheiro de Dependências de Origem
Gera um ficheiro JSON com a lista de todos os ficheiros que o compilador usou para compilar a fonte. Define /sourceDependencies.
Nome do ficheiro de dependências de origem
Especifica o caminho e/ou o nome do ficheiro de dependências de origem gerado. Define /sourceDependencies[path].
Propriedades de Navegação de Informação em C/C++
Ativar informações de navegação
Especifica se o compilador deve gerar um .bsc ficheiro. Define /FR.
Procurar Ficheiro de Informação
Especifica um nome opcional para o ficheiro de informação do navegador. Define /FR<o nome>.
Propriedades de inclusões externas de C/C++
Tratar arquivos incluídos com colchetes angulares como externos
Especifica se os arquivos incluídos com colchetes angulares devem ser tratados como externos. Defina esta propriedade como Sim para definir a opção do /external:anglebrackets compilador.
Nível de aviso de cabeçalho externo
Selecione o quão rigoroso você deseja que o compilador seja sobre erros de código em cabeçalhos externos. Esta propriedade define a opção do /external:Wn compilador. Se esse valor for definido como Herdar Nível de Aviso do Projeto ou o padrão, outras /external opções serão ignoradas.
Diagnóstico de modelo em cabeçalhos externos
Especifica se o nível de aviso deve ser avaliado ao longo de uma sequência de instanciação de modelo. Defina esta propriedade como Sim para definir a opção do /external:templates- compilador.
Desativar análise de código para cabeçalhos externos
Desabilita a análise de código para cabeçalhos externos. Define a opção do /analyze:external- compilador.
Conjunto de regras de análise para cabeçalhos externos
Especifica uma substituição de conjunto de regras de análise de código para cabeçalhos externos. Se esta propriedade não for especificada, utiliza-se a definição Code Analysis. Define a opção do /analyze:external:ruleset path compilador.
Propriedades avançadas em C/C++
Convenção de Chamada
Selecione a convenção de chamada padrão para seu aplicativo (pode ser substituída por função). Conjuntos /Gd, /Gr, /Gz, /Gv.
Choices
-
__cdecl- Especifica a convenção de chamada__cdeclpara todas as funções, exceto funções-membro de C++ e funções marcadas com__stdcallou__fastcall. -
__fastcall- Especifica a convenção de chamada__fastcallpara todas as funções, exceto funções membro de C++ e funções marcadas com__cdeclou__stdcall. Todas as__fastcallfunções devem ter protótipos. -
__stdcall- Especifica a convenção de chamada__stdcallpara todas as funções, exceto funções membro de C++ e funções marcadas com__cdeclou__fastcall. Todas as__stdcallfunções devem ter protótipos. -
__vectorcall- Especifica a__vectorcallconvenção de chamada para todas as funções, exceto funções membros em C++ e funções marcadas__cdecl,__fastcall, ou__stdcall. Todas as__vectorcallfunções devem ter protótipos.
Compilar como
Selecione uma opção de linguagem de compilação para ficheiros de origem. Define /TC, /TP, /interface, /internalPartitionou /exportHeader opções.
Choices
- Padrão - Padrão.
-
Compilar como código C (
/TC) - Compilar arquivos de origem especificados como código C. Por padrão, os arquivos com uma.cextensão são compilados como C. -
Compilar como código C++ (
/TP) - Compilar arquivos de origem especificados como código C++. Por defeito, todos os ficheiros fonte que não têm uma extensão.c,.ixx,.cppmou.h, ou que não têm qualquer extensão, são compilados como C++. -
Compilar como código de módulo C++ (
/interface) - Compilar arquivos de origem especificados como código de módulo C++. Por defeito, os ficheiros com extensão.ixxou.cppmsão compilados como código de módulo C++. -
Compile as C++ Module Internal Partition (
/internalPartition) - Compile os ficheiros fonte especificados como partição interna do módulo C++. -
Compilar como Unidade de Cabeçalho C++ (
/exportHeader) - Compilar ficheiros de origem especificados como unidade de cabeçalho C++. Por defeito, os ficheiros com uma extensão.hou sem extensão são compilados como unidades de cabeçalho.
Desativar avisos específicos
Desative os números de aviso especificados. Coloque os números de aviso numa lista delimitada por ponto e vírgula. Define /wd<número>.
Arquivo de inclusão forçada
Especifica um ou mais ficheiros de inclusão forçada. Define /FI<o nome>.
Arquivo de #using forçado
Especifica um ou mais arquivos de #using forçada. Define /FU<o nome>.
Mostrar Inclusões
Gera uma lista de arquivos de inclusão com saída do compilador. Define /showIncludes.
Usar caminhos completos
Use caminhos completos em mensagens de diagnóstico. Define /FC.
Omitir nome de biblioteca padrão
Especifica a exclusão dos nomes de bibliotecas predefinidas nos ficheiros .obj. Define /Zl.
Relatório de erros do compilador interno
Observação
Esta opção foi preterida. A partir do Windows Vista, o relatório de erros é controlado pelas configurações do Relatório de Erros do Windows (WER).
Tratar avisos específicos como erros
Trata o aviso específico do compilador como um erro, onde n é um aviso do compilador.
Opções Adicionais
Opções adicionais.