Defina propriedades de build e compilador

No IDE do Visual Studio, você pode exibir e editar as propriedades necessárias para compilar e criar um projeto. Essas informações incluem o nome do aplicativo, a extensão (como DLL, LIB, EXE), opções do compilador, opções do vinculador, configurações do depurador e etapas de build personalizadas.

Você pode exibir e modificar essas propriedades usando páginas de propriedades. Para acessar as páginas de propriedades, no menu principal, selecione Project e selecione Propriedades. Ou, em Gerenciador de Soluções, clique com o botão direito do mouse no nó do projeto 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 da ATL (Biblioteca de Modelos Ativos) tem propriedades relacionadas aos arquivos MIDL (Linguagem de Definição de Interface da Microsoft), mas essas propriedades estão ausentes em um aplicativo de console básico. O painel Avançado na janela Páginas de Propriedades mostra as propriedades padrão:

Captura de tela da caixa de diálogo propriedades do projeto do Visual Studio com o painel Avançado selecionado. Propriedades como Uso de MFC, Conjunto de Caracteres e assim por diante são realçadas.

Aplicar propriedades a configurações de build e plataformas de destino

Algumas propriedades, como o nome do aplicativo, se aplicam a todas as variações de compilação e plataformas de destino, seja uma compilação de depuração ou de lançamento. No entanto, a maioria das propriedades é dependente de configuração. Para gerar o código correto, o compilador precisa conhecer a plataforma específica em que o programa é executado e em quais opções específicas do compilador usar. Portanto, ao definir uma propriedade, preste atenção em qual configuração e plataforma o novo valor deve ser aplicado. Ele deve ser aplicado apenas a builds de Depuração Win32 ou também a builds de Depuração ARM64 e de 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 os controles de informações de configuração e plataforma na parte superior. Quando você define a propriedade Otimização aqui, ela se aplica apenas às compilações x64 de Depuração, a configuração atualmente ativa, como mostram as 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 Otimização está definida como Desabilitada (/Od), e isso está destacado. Uma seta indica a relação entre a configuração “Configuração” na página de propriedades do projeto, que está definida como Active(Debug), e a configuração na lista suspensa de configuração da solução na barra de ferramentas, que está definida como Debug. Outra seta destaca a relação entre a configuração de plataforma na página de propriedades do projeto, definida como Active(x64), e a configuração na lista suspensa da plataforma de Soluções na barra de ferramentas, que está definida como x64.

A ilustração a seguir mostra a mesma página de propriedades do projeto, mas a configuração foi alterada para Release. Observe o valor diferente para a propriedade Otimização. Observe também que a configuração ativa ainda é Debug. 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 da Configuração é destacada e está definida como Release. A configuração de otimização está configurada para Otimizar para Velocidade Máxima/O2.

Plataformas-alvo

A plataforma de destino refere-se ao tipo de dispositivo e sistema operacional em que o executável é 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 você pode ver em Microsoft Configuration Manager é idêntica ao Win32 em projetos C++ nativos. 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 de uma compilação Debug, 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 o compilador recebe. 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). As páginas de propriedades expõem essas macros, nas quais você pode fazer referência 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. Você também pode garantir melhor que as configurações do projeto participem corretamente na herança de propriedades.

A ilustração a seguir mostra as páginas de propriedades para um projeto do Visual Studio C++. No painel esquerdo, a regra VC++ Directories é 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 do VC++ está aberta e contém as propriedades das regras de Diretórios do VC++. Uma regra de exemplo é diretórios de origem, que é definido 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 de 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 pelo usuário é um par 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 menus, selecione Exibir>Outras Janelas>Gerenciador de Propriedades. Abra o menu de atalho de uma folha de propriedades (seu nome termina em .user) e 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 variável de ambiente no ambiente de compilação.

Editor de Propriedades

Use o Editor de Propriedades para modificar determinadas propriedades de 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ê poderá selecioná-la 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). A caixa de seleção "Herdar do elemento pai ou das configurações padrão 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 do pai ou das configurações padrão do projeto é selecionada e você adiciona um novo valor, ele é acrescentado aos valores que estão sendo herdados no momento. 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

Ao adicionar um diretório de inclusão a um projeto, não substitua todos os diretórios padrão. Acrescente o novo caminho, como C:\MyNewIncludeDir\, e acrescente a $(IncludePath) macro ao valor da propriedade.

Navegue e pesquise rapidamente em 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:

  • Sem prefixo: pesquisar somente em nomes de propriedade (subcadeia de caracteres que não diferencia maiúsculas de minúsculas).

  • '/' ou '-': pesquisar somente em opções do compilador (prefixo insensível a maiúsculas e minúsculas).

  • v: pesquise somente em valores (subcadeia de caracteres que não diferencia maiúsculas de 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ê cria com o IDE, as propriedades definidas na Página de Propriedade de Diretórios VC++ definem essas variáveis de ambiente. Se os valores de LIB, LIBPATH e INCLUDE já estiverem definidos, por exemplo, por um Prompt de Comando do Desenvolvedor, o processo de compilação substituirá esses valores pelos valores das propriedades correspondentes do MSBuild. O processo de build anexa o valor da propriedade de diretórios executáveis dos Diretórios VC++ para 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.

Artigos nesta seção

Consulte também