Definir propriedades do compilador e da compilação

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, extensão (como DLL, LIB, EXE), opções do compilador, opções do vinculador, configurações do depurador e etapas de compilação personalizadas.

Você pode exibir e modificar essas propriedades usando páginas de propriedades. Para aceder às páginas de propriedades, no menu principal, selecione Project e depois selecione Propriedades. Ou, no Explorador de Soluções, clique com o botão direito 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 do aplicativo. Por exemplo, um projeto ATL (Ative Template Library) tem propriedades relacionadas a arquivos MIDL (Microsoft Interface Definition Language), mas essas propriedades estão ausentes em um aplicativo de console básico. O painel Avançado na janela Property Pages mostra as propriedades predefinidas:

Captura de tela da caixa de diálogo de 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 para criar configurações e plataformas de destino

Algumas propriedades, como o nome do aplicativo, aplicam-se a todas as variações de compilação e plataformas de destino, seja uma compilação de depuração ou de versão. Mas a maioria das propriedades depende da configuração. Para gerar o código correto, o compilador precisa de conhecer tanto a plataforma específica onde o programa corre como quais as opções específicas do compilador a utilizar. Por isso, quando definir uma propriedade, preste atenção à configuração e plataforma a que o novo valor deve aplicar-se. Deve aplicar-se apenas a compilações Debug Win32, ou também deve aplicar-se a Debug ARM64 e Debug x64? Por exemplo, a propriedade Optimization , por padrão, é definida como Maximize Speed (/O2) em uma configuração Release, mas está desabilitada na configuração Debug.

Você sempre pode ver e alterar a configuração e a plataforma à qual um valor de propriedade deve se aplicar. A ilustração a seguir mostra as páginas de propriedades com os controles de configuração e informações da plataforma na parte superior. Quando defines a propriedade de Otimização aqui, ela aplica-se apenas a builds de Debug x64, a configuração atualmente ativa, como 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 Otimização está definida como Desativado (/Od), como indicado. Uma seta indica a relação entre a configuração nas propriedades do projeto, que está definida como Ativa (Depurar), e a configuração na lista suspensa da configuração da Solução na barra de ferramentas, que está definida como Depurar. Outra seta chama a atenção para a relação entre a configuração Plataforma na página de propriedades do projeto, que está definida como Ative(x64), e a configuração na lista suspensa Plataforma de soluções na barra de ferramentas, que está definida como x64.

A ilustração seguinte mostra a mesma página de propriedades do projeto, mas a configuração foi alterada para Release. Note o valor diferente para a propriedade Optimização. Observe também que a configuração ativa ainda é Depurar. Você pode definir propriedades para qualquer configuração aqui; não precisa ser a ativa.

Captura de tela da caixa de diálogo Páginas de propriedades do projeto Visual Studio. A lista suspensa Configuração é chamada e definida como Release. A configuração de otimização é definida como Maximizar a barra de velocidade O2.

Plataformas de destino

Plataforma de destino refere-se ao tipo de dispositivo e sistema operacional em que o executável é executado. Você pode criar 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 estão limitados a Win32, x64, ARM, ARM64, Android e iOS. A plataforma alvo x86 que pode ver no Microsoft Configuration Manager é idêntica ao Win32 em projetos nativos C++. Win32 significa Windows de 32 bits e x64 significa Windows de 64 bits. Para obter mais informações sobre essas duas plataformas, consulte Executando aplicativos de 32 bits.

O valor Qualquer plataforma de destino de CPU que você pode ver no Gestor de Configuração não tem efeito em projetos C++ nativos. É relevante apenas para C++/CLI e outros tipos de projeto .NET. Para obter mais informações, consulte /CLRIMAGETYPE (Especificar tipo de imagem CLR).

Para obter mais informações sobre a definição de propriedades para uma compilação de depuração, consulte:

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

As opções do compilador e do vinculador C++ estão localizadas nos nós C/C++ e Linker no painel esquerdo em Propriedades de configuração. Estas opções traduzem-se diretamente em opções de linha de comandos 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 na documentação todas as opções em Opções do compilador MSVC e Opções do vinculador MSVC.

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

Valores de diretório e caminho

MSBuild suporta o uso de constantes de tempo de compilação para determinados valores de cadeia de caracteres, como diretórios de inclusão e caminhos, chamados macros. Uma macro pode se referir a um valor definido pelo Visual Studio ou pelo sistema MSBuild, ou a um valor definido pelo usuário. As macros têm a aparência de $(macro-name) ou %(item-macro-name). As páginas de propriedades expõem estas macros, onde 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 máquinas e entre versões do Visual Studio. Você também pode garantir melhor 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 Visual Studio C++. No painel esquerdo, a regraDiretórios VC++ é 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 de Diretórios VC++ está aberta, que tem propriedades para as regras de Diretórios VC++. Uma regra de exemplo são os diretórios Source, 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 visualizar os valores de todos os macros disponíveis.

Macros predefinidas

  • Macros globais
    As macros globais aplicam-se 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 instalação do Visual Studio. Uma macro global corresponde a um PropertyGroup no MSBuild.

  • Macros de itens
    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. Este tipo de macro de item corresponde a um ItemGroup metadado no MSBuild. Quando usado no contexto de uma configuração de projeto, uma macro de item se aplica a todos os arquivos de um determinado tipo. Por exemplo, a propriedade de configuração C/C++ Preprocessor Definitions pode usar uma %(PreprocessorDefinitions) macro de item que se aplica a todos os arquivos .cpp no projeto. Este tipo de macro de item corresponde a um ItemDefinitionGroup metadado no MSBuild. Para obter mais informações, consulte Definições de item.

Macros definidas pelo usuário

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

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

Para criar uma macro definida pelo usuário

  1. Abra a janela Gestor de propriedades . Na barra de menus, selecione Exibir> OutroGerenciador 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 é 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 compilação .

Editor de propriedades

Use o Editor de Propriedades para modificar certas propriedades de cadeia e selecionar macros como valores. Para acessar o Editor de propriedades, selecione uma propriedade em uma página de propriedades e escolha o botão de seta para baixo à direita. Se a lista suspensa contiver <Editar>, pode optar por mostrar o Editor de Propriedades dessa propriedade.

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

O Editor de propriedades para a configuração Incluir diretórios está aberto. Ele mostra o valor avaliado para os diretórios de inclusão, que é C:\Program Files(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 dos padrões do pai ou do projeto' está selecionada.

No Editor de Propriedades, escolha o botão Macros para visualizar as macros disponíveis e os seus valores atuais. A ilustração a seguir mostra o Editor de propriedades para a propriedade Additional Include Directories depois que o botão Macros foi escolhido. Quando a caixa de verificação Herdar do elemento principal ou das predefinições do projeto está selecionada e adicionar um novo valor, este é acrescentado aos valores que estão atualmente a ser 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 Include Directories 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 include ao conjunto de diretórios padrão

Quando adicionas um diretório de inclusão a um projeto, não sobrescrevas todos os diretórios predefinidos. Anexe o novo caminho, como C:\MyNewIncludeDir\, e depois anexe a $(IncludePath) macro ao valor da propriedade.

Explore e pesquise 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) fornece 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 ajudá-lo a filtrar os resultados:

  • Sem prefixo: procurar apenas em nomes de propriedade (substring sem distinção entre maiúsculas e minúsculas).

  • '/' ou '-': pesquisa apenas nas opções do compilador (prefixo não sensível a maiúsculas/minúsculas).

  • v: Pesquise apenas em valores (substring que não diferencia maiúsculas de minúsculas).

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

O compilador MSVC (cl.exe) reconhece certas variáveis de ambiente, especificamente LIB, LIBPATH, PATHe INCLUDE. Quando constróis com o IDE, as propriedades que defines na Página de Propriedades das Diretórios do VC++ definem essas variáveis de ambiente. Se os valores de LIB, LIBPATH e INCLUDE já estiverem definidos, por exemplo pela Linha de Comandos do Programador, o processo de compilação substitui esses valores pelos das propriedades correspondentes do MSBuild. O processo de compilação antecõe o valor da propriedade Diretórios Executáveis de Diretórios VC++ a PATH. Você pode definir uma variável de ambiente definida pelo usuário criando uma macro definida pelo usuário e, em seguida, marcando a caixa que diz Definir essa macro como uma variável de ambiente no ambiente de compilação.

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 selecione Depuração.

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

Artigos nesta secção

Consulte também