Página de propriedade geral (projeto)
Este artigo se aplica a projetos do Visual Studio para Windows. Para projetos do Linux, confira Referência da Página de propriedades do C++ para Linux. Para projetos do CMake, confira Projetos do CMake no Visual Studio. Para projetos Android, confira Propriedades gerais do projeto (Android C++). Para projetos de Makefile no Android, confira Propriedades gerais do projeto (Android C++ Makefile). No Visual Studio 2019, algumas propriedades para projetos que não são da UWP (Windows Runtime ou Plataforma Universal do Windows) foram movidos para a Página de propriedades avançadas.
Para abrir a caixa de diálogo Páginas de Propriedades de um projeto, selecione o projeto (não a solução) no Gerenciador de Soluções. Em seguida, selecione o menu Projeto>Propriedades do Nome do Projeto na barra de menus. Ou clique com o botão direito do mouse no nó do projeto no Gerenciador de Soluções e selecione Propriedades no menu de contexto.
Na caixa de diálogo Páginas de Propriedades, a página de propriedade Propriedades de Configuração>Geral exibe as propriedades do projeto com base no tipo de projeto. Essas propriedades ficam reunidas em um ou dois títulos, dependendo do tipo de projeto:
Geral
Padrões de Projeto
Geral
O título de propriedade Geral inclui uma combinação dessas propriedades:
Plataforma de Destino
Especifica a plataforma na qual o projeto é executado. Por exemplo, Windows, Android ou iOS. O valor Windows 10 significa que o projeto é direcionado à Plataforma Universal do Windows. Se você tiver como destino outras versões do Windows, a versão não será listada e o valor neste campo será exibido apenas como Windows. Essa propriedade é um campo somente leitura que é definido quando você cria um projeto.
Versão da plataforma de destino
Especifica a versão do SDK do Windows usada para compilar o projeto. Essa propriedade será exibida somente se o tipo de projeto der suporte a ela. Você pode selecionar 10.0 para especificar a versão mais recente do SDK do Windows. Se o aplicativo puder aproveitar as funcionalidades dessa versão do SDK do Windows, mas ainda puder ser executado em versões anteriores sem essas funcionalidades, ainda que com alguma perda de funcionalidade, o valor dessa propriedade e da propriedade Versão mínima da plataforma de destino poderá ser diferente. Nesse caso, o código deverá verificar a versão da plataforma na qual ele está sendo executado em runtime e desabilitar as funcionalidades que não disponíveis em versões mais antigas da plataforma.
Versão Mín. da Plataforma Versão
Especifica a versão mais antiga da plataforma na qual o projeto pode ser executado. Essa propriedade será exibida somente se o tipo de projeto der suporte a ela. Defina esse valor se o aplicativo puder aproveitar as funcionalidades em uma versão mais recente do SDK do Windows, e puder ser executado em versões anteriores, ainda que com alguma perda de funcionalidade. Se definido com um valor mais baixo, o código deverá verificar a versão da plataforma em que está em execução em runtime. Em seguida, desabilitar os recursos que não estão disponíveis em versões mais antigas da plataforma.
O sistema de projetos do C++ não impõe essa opção. Ela foi incluída para manter a consistência com outras linguagens, como C# e JavaScript, e como um guia para qualquer pessoa que use o projeto. O Microsoft C++ não gerará um erro se você usar um recurso que não está disponível na versão mínima.
Versão do SDK do Windows
Para a plataforma de destino do Windows, essa propriedade especifica a versão do SDK do Windows necessária para o projeto. Quando o Instalador do Visual Studio instala uma Carga de Trabalho do C++, ele também instala as partes necessárias do SDK do Windows. Caso você tenha outras versões do SDK do Windows no computador, cada versão instalada será exibida na lista suspensa.
Para ter o Windows 7 ou o Windows Vista como destino, use o valor 8.1, pois o SDK do Windows 8.1 é compatível com versões anteriores dessas plataformas. Caso o destino seja uma versão anterior, defina o valor apropriado para _WIN32_WINNT
em targetver.h
. Para o Windows 7, isso é 0x0601. Para obter mais informações, confira Modificar WINVER
e _WIN32_WINNT
.
Você pode instalar o conjunto de ferramentas da plataforma Windows XP incluído como um componente opcional do Instalador do Visual Studio para criar projetos do Windows XP e do Windows Server 2003. Para obter informações sobre como obter e usar esse conjunto de ferramentas da plataforma, veja Configurando programas para o Windows XP. Para obter informações sobre como alterar o conjunto de ferramentas da plataforma, confira Instruções: Modificar a estrutura de destino e o conjunto de ferramentas da plataforma.
Diretório de saída
Especifica o diretório no qual ferramentas de build como o vinculador colocarão todos os arquivos de saída finais criados durante o processo de build. Normalmente, esse diretório contém a saída de ferramentas como o vinculador, o arquivador ou o BSCMake. Por padrão, essa propriedade é o diretório especificado pela combinação $(SolutionDir)$(Configuration)\
da macro.
Para acessar essa propriedade de forma programática, confira OutputDirectory.
Diretório intermediário
Especifica o diretório no qual ferramentas, como o compilador, colocam todos os arquivos intermediários criados durante o processo de build. Normalmente, esse diretório contém a saída de ferramentas, como o compilador do C/C++, a MIDL e o compilador de recursos. Por padrão, essa propriedade é o diretório especificado pela macro $(Configuration)\
.
Para acessar essa propriedade de forma programática, confira IntermediateDirectory.
Nome de destino
Especifica o nome de arquivo gerado por esse projeto. Por padrão, essa propriedade é o nome de arquivo especificado pela macro $(ProjectName)
.
Extensão de destino
Especifica a extensão de arquivo gerada por esse projeto; por exemplo, .exe
ou .dll
. Para alguns tipos de projeto do Visual Studio 2019, essa propriedade foi movida para a Página de propriedades avançadas.
Extensões a serem excluídas na limpeza
O comando do menu Build>Limpar exclui arquivos do diretório intermediário no qual a configuração de um projeto foi compilada. O sistema de build exclui arquivos com as extensões especificadas quando você executa o comando Limpar ou quando você recompila. O sistema de build também exclui qualquer saída conhecida do build, independentemente do local em que esteja localizada. Os arquivos excluídos incluem saídas intermediárias, como arquivos .obj
. Use ponto e vírgula (;
) para separar extensões. Você pode especificar caracteres curinga (*
, ?
) nas extensões.
Para acessar essa propriedade de forma programática, confira DeleteExtensionsOnClean. Para alguns tipos de projeto do Visual Studio 2019, essa propriedade foi movida para a Página de propriedades avançadas.
Arquivo de log de build
Permite que você especifique um local não padrão para o arquivo de log criado sempre que um projeto é compilado. A localização padrão é especificada pelas combinação da macro $(IntDir)$(MSBuildProjectName).log
. Para alguns tipos de projeto do Visual Studio 2019, essa propriedade foi movida para a Página de propriedades avançadas.
Use as macros do projeto para alterar o local do diretório. Para obter mais informações, confira Macros comuns para comandos e propriedades de build.
Conjunto de ferramentas da plataforma
Especifica o conjunto de ferramentas usado para compilar a configuração atual. Essa propriedade permite que o projeto seja direcionado a uma versão diferente do compilador e das bibliotecas do Visual C++. Por padrão, os projetos do Visual Studio C++ têm como destino o conjunto de ferramentas mais recente instalado pelo Visual Studio. Você pode escolher um dos conjuntos de ferramentas instalados por várias versões anteriores do Visual Studio. Alguns conjuntos de ferramentas mais antigos podem criar executáveis que funcionam no Windows XP ou Vista. Para obter informações sobre como alterar o conjunto de ferramentas da plataforma, confira Como modificar a estrutura de destino e o conjunto de ferramentas da plataforma.
Habilitar Build Incremental Gerenciado
Para projetos gerenciados, essa propriedade habilita a detecção de visibilidade externa quando você gera assemblies. Se uma alteração em um projeto gerenciado não estiver visível para outros projetos, os projetos dependentes não serão recompilados. Essa opção pode aprimorar de maneira significativa os tempos de build em soluções que incluem projetos gerenciados. Em projeto do Visual Studio 2019, essa propriedade foi movida para a Página de propriedades avançadas.
Tipo de Configuração
Especifica a saída do projeto e as ferramentas necessárias. Em projetos da UWP, essa propriedade aparece no título Padrões do Projeto. Há vários tipos de configuração para escolher, dependendo do tipo de projeto:
Aplicativo (.exe)
Exibe o conjunto de ferramentas do vinculador: o compilador do C/C++, o MIDL, o Compilador de Recurso, o Vinculador, o BSCMake, o Gerador de Proxy de Serviço Web XML, o build personalizado, os eventos de pré-build, pré-vínculo e pós-build.
Biblioteca Dinâmica (.dll)
Exibe o conjunto de ferramentas do vinculador, especifica a opção do vinculador /DLL
e adiciona a definição do pré-processador _WINDLL
à linha de comando CL.
Makefile
Exibe o conjunto de ferramentas de makefile (NMake).
Biblioteca estática (.lib)
Exibe o conjunto de ferramentas do arquivador. É semelhante ao conjunto de ferramentas do vinculador, exceto que substitui o vinculador pelo arquivador e omite o Gerador de Proxy do Serviço Web XML.
Utilitário
Exibe o conjunto de ferramentas do utilitário (MIDL, build personalizado, eventos de pré-build e pós-build).
Para acessar essa propriedade de forma programática, confira ConfigurationType.
Padrão de linguagem C++
Especifica qual padrão da linguagem C++ usar. O padrão é /std:c++14
. Especifique /std:c++17
para usar recursos do C++17 /std:c++20
para usar recursos do C++20 e /std:c++latest
para usar recursos propostos do C++23 ou outros recursos experimentais. Para obter mais informações, veja /std
(especificar a versão de linguagem padrão).
Padrão de linguagem C
Especifica qual padrão de linguagem C usar. O padrão é o MSVC Herdado, que implementa C89, algo da C99 e extensões específicas da Microsoft. Especifique /std:c11
usar recursos da C11 e /std:c17
para usar recursos da C17. Para obter mais informações, veja /std
(especificar a versão de linguagem padrão)
Padrões de Projeto
Tipo de Configuração
Especifica a saída do projeto e as ferramentas necessárias. Em projetos da UWP, essa propriedade aparece no título Padrões do Projeto. Há vários tipos de configuração para escolher, dependendo do tipo de projeto:
Aplicativo (.exe)
Exibe o conjunto de ferramentas do vinculador: o compilador do C/C++, o MIDL, o Compilador de Recurso, o Vinculador, o BSCMake, o Gerador de Proxy de Serviço Web XML, o build personalizado, os eventos de pré-build, pré-vínculo e pós-build.
Biblioteca Dinâmica (.dll)
Exibe o conjunto de ferramentas do vinculador, especifica a opção do vinculador /DLL
e adiciona a definição do pré-processador _WINDLL
à linha de comando CL.
Makefile
Exibe o conjunto de ferramentas de makefile (NMake).
Biblioteca estática (.lib)
Exibe o conjunto de ferramentas do arquivador. É semelhante ao conjunto de ferramentas do vinculador, exceto que substitui o vinculador pelo arquivador e omite o Gerador de Proxy do Serviço Web XML.
Utilitário
Exibe o conjunto de ferramentas do utilitário (MIDL, build personalizado, eventos de pré-build e pós-build).
Para acessar essa propriedade de forma programática, confira ConfigurationType.
Uso do MFC
Especifica se o projeto do MFC será vinculado estática ou dinamicamente à DLL do MFC. Em projetos que não são do MFC, selecione Usar Bibliotecas Padrão do Windows. Em projeto do Visual Studio 2019, essa propriedade foi movida para a Página de propriedades avançadas.
Para acessar essa propriedade de forma programática, confira useOfMfc.
Conjunto de caracteres
Especifica se a macro do pré-processador _UNICODE
ou _MBCS
deve ser definida. Também afeta o ponto de entrada do vinculador, quando apropriado. Em projeto do Visual Studio 2019, essa propriedade foi movida para a Página de propriedades avançadas.
Para acessar essa propriedade de forma programática, confira CharacterSet.
Suporte a Common Language Runtime
Faz com que a opção do compilador /clr
seja usada. Em projeto do Visual Studio 2019, essa propriedade foi movida para a Página de propriedades avançadas.
Para acessar essa propriedade de forma programática, confira ManagedExtensions.
Versão da Estrutura de Destino .NET
Em projetos gerenciados, especifica a versão do .NET Framework de destino. Em projeto do Visual Studio 2019, essa propriedade foi movida para a Página de propriedades avançadas.
Otimização do Programa Inteiro
Especifica a opção do compilador /GL
e a opção /LTCG
do vinculador. Por padrão, essa propriedade está desabilitada para configurações de Depuração e habilitada para configurações de Lançamento. Em projeto do Visual Studio 2019, essa propriedade foi movida para a Página de propriedades avançadas.
Suporte a Aplicativos da Windows Store
Especifica se esse projeto dá suporte a aplicativos do Windows Runtime (Plataforma Universal do Windows ou UWP). Para obter mais informações, confira /ZW
(Compilação do Windows Runtime) e a Documentação do UWP para Desenvolvedores do Windows.
Compatível com a Área de Trabalho do Windows
Permite que a saída desse projeto do Windows Runtime também dê suporte a aplicativos da área de trabalho. Essa propriedade define o valor <DesktopCompatible>
no arquivo de projeto. A propriedade Compatível com Área de Trabalho do Windows está disponível a partir do Visual Studio 2019 versão 16.9.