Compartilhar via


Usando $(Inherit) e $(NoInherit)

Este tópico fornece alguns exemplos sobre como usar o $(Inherit) and $(NoInherit) macros.

  • Conjunto de procedimentos adicionais incluir caminho (/I) no nível do projeto:

    c:\test
    
  • Um arquivo específico, conjunto de procedimentos adicionais incluir caminho:

    c:\test2;c:\mystuff
    
  • Observe Linha de comando propriedade página.Ele inclui:

    /I"c:\test2" /I"c:\mystuff" /I"c:\test"
    

    Isso ocorre porque há um implícita $(Inherit) no participante da configuração de arquivo adicional incluem caminhos se $(Inherit) não está colocado na lista explicitamente.

  • No entanto, se você alterar a configuração do arquivo do adicional incluir caminho para isso:

    c:\test2;$(Inherit);c:\mystuff
    

    ele se expandirá para o seguinte em Linha de comando página de propriedades:

    /I"c:\test2" /I"c:\test" /I"c:\mystuff"
    

    Observe que o adicional incluir caminho da configuração de projeto é onde o $(Inherit) macro foi colocada. The $(Inherit) macro é usada para orientar o posicionamento dos valores herdados que fazem parte desta propriedade. Ela pode ficar em qualquer lugar na lista.

  • Se você alterar a configuração do arquivo do adicional incluir caminho para isso:

    $(Inherit);c:\test2;$(Inherit);c:\mystuff
    

    ele se expandirá para o seguinte em Linha de comando página de propriedades:

    /I"c:\test" /I"c:\test2" /I"c:\test" /I"c:\mystuff"
    
  • Se você alterar a configuração do arquivo do adicional incluir caminho para isso:

    c:\test2;c:\mystuff;$(NoInherit)
    

    ele se expandirá para o seguinte em Linha de comando página de propriedades:

    /I"c:\test2" /I"c:\mystuff"
    

    Observe que /I"c:\test" o projeto configuração é perdida. O local do $(NoInherit) macro tem não relação como ele é usado, diferentemente $(Inherit), que depende do local.

$(NoInherit) tem precedência sobre $(Inherit). If $(NoInherit) está presente, $(Inherit) será ignorado. Por exemplo, a alteração das configurações de arquivo do adicional incluir caminho para isso:

c:\test2;$(Inherit);c:\mystuff;$(NoInherit)

irá expandi-la exatamente sistema autônomo se fosse:

c:\test2;c:\mystuff;$(NoInherit)

Tenha cuidado com $(NoInherit) no Define propriedade para ferramentas sistema autônomo o compilador C/C ++ ou vinculador; você pode cancelar o uso de padrões de projeto (tais sistema autônomo aquelas conjunto por Uso do ATL and Uso do MFC).

Consulte também

Outros recursos

Macros para compilação comandos e propriedades