Qual é a diferença entre “Incluir Diretórios” e “Incluir Diretórios Adicionais”

94

Nas propriedades de configuração do meu projeto, nos "diretórios VC ++" há uma entrada para "Incluir diretórios". Mas na opção "C / C ++", há outra entrada chamada "Diretórios de inclusão adicionais". A mesma coisa acontece com os diretórios da biblioteca.

Quais são as diferenças entre essas duas entradas?

insira a descrição da imagem aqui insira a descrição da imagem aqui

Artium
fonte

Respostas:

48

Este é um constrangimento que foi introduzido no VS2010. As configurações dos Diretórios VC ++ costumavam ser localizadas em Ferramentas + Opções, Projetos e Soluções, Diretórios VC ++. Configurações globais aplicadas a todos os projetos desenvolvidos na máquina. Ele ainda está lá, mas indica que agora você deve alterá-lo nas configurações do projeto. Um efeito colateral da revisão do mecanismo de construção no VS2010, permitindo a construção com msbuild. Remover as configurações por projeto teria sido lógico, mas interromperia muitos projetos existentes.

Como tal, provavelmente é melhor tratar as configurações dos Diretórios VC ++ como o padrão da máquina. É predefinido automaticamente pelo instalador do VS. Experimente-o apenas se precisar de uma ordem incomum de pesquisa de diretório, colocando os locais personalizados por último. Muito incomum fazer isso.

No entanto, funciona. E acabou sendo aproveitado. Capacitando a configuração do conjunto de ferramentas da plataforma no VS2012 e superior. Compilador diferente, linker diferente, diretórios #include diferentes, caminho de pesquisa do linker diferente. Modificado com apenas uma configuração, ótimo.

Hans Passant
fonte
3
Hmmm ... Isso é verdade que as opções gloabl são guardadas sob este - mas esta é a folha de propriedades Microsoft.Cpp.Win32.usere somente isso. Se você editar a entrada "Diretórios VC ++" ao ter o projeto ativo ou outra folha de propriedades, a alteração será persistida no .vcxprojarquivo ou no respectivo .propsarquivo e não será global ou de todo o usuário.
Martin Ba
25

O Incluir Diretórios corresponde à variável de ambiente INCLUDE.

As configurações de diretório exibidas na janela são os diretórios que o Visual Studio pesquisará para incluir arquivos referidos em seus arquivos de código-fonte. Corresponde à variável de ambiente INCLUDE.

Enquanto os diretórios de inclusão adicionais são passados ​​por meio de um argumento de linha de comando (ou seja, a \Iopção).

CodeNaked
fonte
19

CONFIGURAR INCLUI CAMINHOS

Diretórios VC ++: Inclui diretórios

  • este valor é herdado da variável de ambiente do INCLUDE Windows , que é definida fora do Visual Studio
    • variáveis ​​de ambiente podem ser: globais para o computador ou ter escopo de nível de usuário
    • As variáveis ​​de ambiente INCLUDEe LIBsão criadas quando o Microsoft Windows SDK é instalado com o Visual Studio .

C / C ++: Diretórios de inclusão adicionais

  • é uma configuração de nível de projeto ... você terá que definir este valor para cada projeto em sua solução
  • este valor pode ser persistido para o controle de origem

NOTAS ADICIONAIS

Qual devo usar?

A decisão de usar incluir diretórios ou incluir diretórios adicionais dependerá do processo de desenvolvimento da sua organização. Na minha opinião, é mais importante:

  • que você seja capaz de recriar de forma consistente e confiável o ambiente de desenvolvimento (pense: repassando o código-fonte para outro desenvolvedor)
  • para desenvolvedores dentro de uma organização, use uma abordagem consistente

Uma nota sobre macros

  • As macros de configuração do projeto C ++ (não confundir com a #definediretiva do pré-processador C ++ ) herdam o conteúdo de fontes diferentes. Macros como ...
    • $(Include)herdam seus valores das variáveis ​​de ambiente do Windows
    • $(OutDir)herdam seus valores do Visual Studio IDE

REFERÊNCIAS

Pressacco
fonte