Defina propriedades de build e compilador

No IDE, as propriedades expõem as informações necessárias para criar um projeto. Essas informações incluem nome do aplicativo, extensão (como DLL, LIB, EXE), opções do compilador, opções do vinculador, configurações do depurador, etapas de build personalizadas e muitas outras. Normalmente, você usa as páginas de propriedades para exibir e modificar essas propriedades. Para acessar as páginas de propriedade, selecione Projeto, >nome do projetoPropriedades no menu principal ou clique com o botão direito do mouse no nó do projeto em Gerenciador de soluções e escolha Propriedades.

Propriedades padrão

Quando você cria um projeto, o sistema atribui valores para várias propriedades. Os padrões variam um pouco dependendo do tipo de projeto e das opções escolhidas no assistente de aplicativo. Por exemplo, um projeto ATL tem propriedades relacionadas a arquivos MIDL, mas essas propriedades estão ausentes em um aplicativo de console básico. As propriedades padrão são mostradas no painel Geral nas Páginas de Propriedades:

Captura de tela da caixa de diálogo propriedades do projeto do Visual Studio.

A página Geral está aberta. A seção Padrões do Projeto está realçada. Ela inclui o Tipo de Configuração definido como Aplicativo (.exe), o uso do MFC definido para Usar bibliotecas padrão do Windows, o conjunto de caracteres é Unicode, o Suporte ao Common Language Runtime está definido como Sem Suporte ao Common Language Runtime, a otimização de Programa Inteiro está definida como Nenhuma Otimização de Programa Inteira e o suporte do aplicativo da Windows Store está definido como Não.

Aplicando propriedades para criar configurações e plataformas de destino

Algumas propriedades, como o nome do aplicativo, se aplicam a todas as variações de build, independentemente da plataforma de destino ou se o build é de depuração ou de versão. No entanto, a maioria das propriedades é dependente de configuração. Para gerar o código correto, o compilador precisa saber em qual plataforma específica o programa é executado e as opções específicas do compilador a serem usadas. Portanto, quando você define uma propriedade, é importante ficar atento à qual configuração e plataforma do novo valor que deve ser aplicado. Ele deve ser aplicado apenas a builds de Depuração Win32 ou também à Depuração ARM64 e à Depuração x64? Por exemplo, a propriedade Otimização, por padrão, é definida como Maximizar Velocidade (/O2) em uma configuração de Versão, mas está desabilitada na configuração de Depuração.

Sempre é possível ver e alterar a configuração e a plataforma à qual um valor de propriedade deve ser aplicado. A ilustração a seguir mostra as páginas de propriedades com as informações de configuração e de plataforma na parte superior. Quando a propriedade Otimização for definida aqui, ela será aplicada apenas a builds de Depuração Win32, que é a configuração ativa, conforme mostrado pelas setas vermelhas.

Captura de tela da caixa de diálogo Páginas de Propriedades do Visual Studio.

A página está aberta para C/C++, Otimização. A configuração de otimização está definida como Desabilitada (/Od), que é chamada. Uma seta chama a relação entre a configuração na página de propriedades do projeto, que é definida como Active(Debug) e a configuração na lista suspensa de configuração de solução na barra de ferramentas, que é definida como Depurar. Outra seta chama a relação entre a configuração de plataforma na página de propriedades do projeto, que está definida como Active(Win32) e a configuração na lista suspensa da plataforma Soluções na barra de ferramentas, que está definida como x86.

A ilustração a seguir mostra a mesma página de propriedades do projeto, mas a configuração foi alterada para Versão. Observe o valor diferente para a propriedade Otimização. Observe também que a configuração ativa ainda é Depuração. Defina as propriedades de qualquer configuração aqui; ela não precisa ser a configuração ativa.

Captura de tela da caixa de diálogo Páginas de Propriedades do projeto do Visual Studio. A lista suspensa Configuração é chamada e está definida como Versão. A configuração de Otimização > Otimização> do C/C++ está definida como Maximizar Velocidade (/O2).

Plataformas de destino

Plataforma de destino refere-se ao tipo de dispositivo e sistema operacional no qual o executável será executado. Você pode compilar um projeto para mais de uma plataforma. As plataformas de destino disponíveis para projetos C++ dependem do tipo de projeto. Eles incluem, mas não se limitam a Win32, x64, ARM, ARM64, Android e iOS. A plataforma de destino x86 que pode ser vista no Configuration Manager é idêntica ao Win32 em projetos do C++ nativo. Win32 significa Windows de 32 bits e x64 significa Windows de 64 bits. Para obter mais informações sobre essas duas plataformas, confira Executando aplicativos de 32 bits.

O valor de plataforma de destino Qualquer CPU que pode ser visto no Gerenciador de Configuração não tem nenhum efeito em projetos do C++ nativo. Ele só é relevante para C++/CLI e outros tipos de projeto .NET. Para obter mais informações, confira, /CLRIMAGETYPE(Especificar tipo de imagem CLR).

Para obter mais informações sobre como definir propriedades para um build de depuração, consulte:

Opções de compilador e vinculador do C++

As opções do compilador e do vinculador do C++ estão localizadas nos nós C/C++ e Vinculador no painel esquerdo em Propriedades de Configuração. Essas opções se traduzem diretamente em opções de linha de comando que são passadas para o compilador. Para ler a documentação sobre uma opção específica, selecione a opção no painel central e pressione F1. Ou, você pode procurar a documentação para todas as opções nas opções do compilador MSVC e nas opções do vinculador MSVC.

A caixa de diálogo Páginas de Propriedades mostra somente as páginas de propriedades que são relevantes ao projeto atual. Por exemplo, se o projeto não tiver um arquivo .idl, a página de propriedades MIDL não será exibida. Para obter mais informações sobre as configurações em cada página de propriedade, consulte Páginas de Propriedades (C++).

Valores de diretório e caminho

O MSBuild dá suporte ao uso de constantes de tempo de compilação para determinados valores de cadeia de caracteres, como incluir diretórios e caminhos chamados macros. Uma macro pode se referir a um valor definido pelo Visual Studio ou pelo sistema do MSBuild, ou a um valor definido pelo usuário. As macros são parecidas $(macro-name) ou %(item-macro-name). Elas são expostas nas páginas de propriedades, nas quais você pode consultá-las e modificá-las usando o Editor de Propriedades. Use macros em vez de valores codificados, como caminhos de diretório. As macros facilitam o compartilhamento de configurações de propriedade entre computadores e entre versões do Visual Studio. Além disso, você pode garantir que as configurações do projeto participem corretamente da herança de propriedade.

A ilustração a seguir mostra as páginas de propriedades para um projeto do Visual Studio C++. No painel esquerdo, a regraDiretórios do VC++ está selecionada e o painel direito lista as propriedades associadas a essa regra. Os valores de propriedade geralmente são macros, como $(VC_SourcePath):

Captura de tela da caixa de diálogo Páginas de Propriedades do Visual Studio para regras para vários diretórios.

A página Diretórios VC plus plus está aberta, que possui propriedades para as regras dos Diretórios VC++. Uma regra de exemplo são diretórios de Origem, que são definidos como $(VC_SourcePath). Há regras para os diretórios de inclusão, diretórios de biblioteca, diretórios executáveis e assim por diante.

Use o Editor de Propriedades para exibir os valores de todas as macros disponíveis.

Macros predefinidas

  • Macros globais:
    As macros globais se aplicam a todos os itens em uma configuração de projeto. Uma macro global tem a sintaxe $(name). Um exemplo de uma macro global é $(VCInstallDir), que armazena o diretório raiz da sua instalação do Visual Studio. Uma macro global corresponde a PropertyGroup em MSBuild.

  • Macros de item
    As macros de item têm a sintaxe %(name). Para um arquivo, uma macro de item se aplica somente a esse arquivo — por exemplo, você pode usar %(AdditionalIncludeDirectories) para especificar diretórios de inclusão que se aplicam somente a um arquivo específico. Esse tipo de macro de item corresponde a um metadado ItemGroup no MSBuild. Quando usada no contexto de uma configuração de projeto, uma macro de item se aplica a todos os arquivos de determinado tipo. Por exemplo, a propriedade da configuração Definições do Pré-processador do C/C++ pode usar uma macro de item %(PreprocessorDefinitions) que se aplica a todos os arquivos .cpp do projeto. Esse tipo de macro de item corresponde a um metadado ItemDefinitionGroup no MSBuild. Para obter mais informações, consulte Definições de item.

Macros definidas pelo usuário

Crie macros definidas pelo usuário para usar como variáveis em builds do projeto. Por exemplo, você pode criar uma macro definida pelo usuário que forneça um valor a uma etapa personalizada de compilação ou a uma ferramenta personalizada de compilação. Uma macro definida é um par de nome/valor. Em um arquivo de projeto, use a notação $(name) para acessar o valor.

Uma macro definida pelo usuário é armazenada em uma folha de propriedades. Se o projeto ainda não tiver uma folha de propriedades, você poderá criar uma seguindo as etapas em Compartilhar ou reutilizar as configurações de projeto do Visual Studio.

Para criar uma macro definida pelo usuário

  1. Abra a janela do Gerenciador de Propriedades. (Na barra de menu, selecione Visualização>Gerenciador de Propriedades ou Visualização>Outras janelas>Gerenciador de Propriedades.) Abra o menu de atalho de uma folha de propriedades (o nome termina com .user) e, em seguida, escolha Propriedades. A caixa de diálogo Páginas de Propriedades dessa folha de propriedades será aberta.

  2. No painel esquerdo da caixa de diálogo, selecione Macros de Usuário. No painel direito, escolha o botão Adicionar Macro para abrir a caixa de diálogo Adicionar Macro de Usuário.

  3. Na caixa de diálogo, especifique um nome e um valor para a macro. Opcionalmente, marque a caixa de seleção Definir esta macro como uma variável de ambiente no ambiente de build.

Edição de Propriedades

Você pode usar o Editor de Propriedades para alterar certas propriedades da cadeia de caracteres e selecionar macros como valores. Para acessar o Editor de Propriedades, selecione uma propriedade em uma página de propriedades e, em seguida, selecione o botão de seta para a direita. Se a lista suspensa contiver <Editar>, você pode escolher essa opção para exibir o Editor de Propriedades dessa propriedade.

Captura de tela da página de propriedades do projeto do Visual Studio para Diretórios VC plus plus.

O Editor de Propriedades da configuração Incluir Diretórios está aberto. Ele mostra o valor avaliado para os Diretórios de Inclusão, que é C:\Arquivos de Programas(x86)\Microsoft Visual Studio 14.0\VC\Include. Ele mostra os dois valores herdados: $(VC_IncludePath) e $(WindowsSDK_IncludePath). Uma caixa de seleção para "Herdar de padrões pai ou do projeto" está selecionada.

No Editor de Propriedades, escolha o botão Macros para exibir as macros disponíveis e seus valores atuais. A ilustração a seguir mostra o Editor de Propriedades da propriedade Diretórios de Inclusão Adicionais depois de o botão Macros ser escolhido. Quando a caixa de seleção Herdar dos padrões pai ou do projeto é marcada e você adiciona um novo valor, é acrescentado a todos os valores atualmente herdados. Se você desmarcar a caixa de seleção, o novo valor substituirá os valores herdados. Na maioria dos casos, deixe a caixa de seleção marcada.

Captura de tela da caixa de diálogo Editor de Propriedades depois de selecionar o botão Macros.

O editor de propriedades para Diretórios de Inclusão está aberto. O valor avaliado é exibido junto com os valores herdados. Uma caixa de listagem contém várias macros e seus valores, como $(CharacterSet), que é definido como Unicode.

Adicionar um diretório de inclusão ao conjunto de diretórios padrão

Quando você adiciona um diretório de inclusão a um projeto, é importante não substituir todos os diretórios padrão. A forma correta de adicionar um diretório é acrescentar o novo caminho, por exemplo, "C:\MyNewIncludeDir\” e, em seguida, acrescentar a macro $(IncludePath) ao valor da propriedade.

Procurar e pesquisar rapidamente todas as propriedades

A página de propriedades Todas as opções (no nó Propriedades de Configuração > C/C++ na caixa de diálogo Páginas de Propriedades) oferece uma maneira rápida de navegar e pesquisar as propriedades disponíveis no contexto atual. Tem uma caixa de pesquisa especial e uma sintaxe simples para ajudar você a filtrar resultados:

Nenhum prefixo:
Pesquisar nomes de propriedade somente (subcadeia de caracteres sem diferenciação de maiúsculas e minúsculas).

'/' ou '-':
Pesquisar somente em opções de compilador (prefixo sem diferenciação de maiúsculas e minúsculas)

v:
Pesquisar somente em valores (subcadeia de caracteres sem diferenciação de maiúsculas e minúsculas).

Definir as variáveis de ambiente para uma compilação

O compilador MSVC (cl.exe) reconhece determinadas variáveis de ambiente, especificamente LIBLIBPATHPATH e INCLUDE. Quando você compila com o IDE, as propriedades definidas naPágina de Propriedades de Diretórios do VC++ são usadas para definir essas variáveis de ambiente. Se os valores LIB, LIBPATH e INCLUDE já tiverem sido definidos, por exemplo, por um Prompt de Comando do Desenvolvedor, eles serão substituídos pelos valores das propriedades correspondentes do MSBuild. A compilação, em seguida, anexa o valor da propriedade de diretórios executáveis dos Diretórios VC++ como PATH. Defina uma variável de ambiente definida pelo usuário criando uma macro definida pelo usuário e, em seguida, marcando a caixa que indica Definir esta macro como uma variável de ambiente no ambiente de build.

Definir variáveis de ambiente para uma sessão de depuração

No painel esquerdo da caixa de diálogo Páginas de Propriedades do projeto, expanda Propriedades de Configuração e, em seguida, selecione Depuração.

No painel direito, modifique as configurações do projeto Ambiente ou Ambiente de Mesclagem e, em seguida, escolha o botão OK.

Nesta seção

Compartilhamento ou reutilização das configurações de projeto do Visual Studio
Como criar um arquivo .props com configurações de build personalizadas que podem ser compartilhadas ou reutilizadas.

Herança de propriedade do projeto
Descreve a ordem de avaliação para os arquivos .props,.targets, .vcxproj e variáveis de ambiente no processo de compilação.

Modificação de propriedades e destinos sem alteração do arquivo de projeto
Como criar configurações de compilação temporárias sem precisar modificar um arquivo de projeto.

Confira também

Projetos do Visual Studio – C++
.vcxproj e .props estrutura de arquivo
Arquivos XML de página de propriedades