web-dev-qa-db-fra.com

Quelle est la différence entre «Inclure les répertoires» et «Inclure les répertoires supplémentaires»

Dans les propriétés de configuration de mon projet, sous les "répertoires VC++", il y a une entrée pour "Inclure les répertoires". Mais sous l'option "C/C++", il existe une autre entrée appelée "Additional Include Directories". La même chose se produit avec les répertoires de bibliothèque.

Quelle est la différence entre ces deux entrées?

enter image description hereenter image description here

88
Artium

C'est une maladresse qui a été introduite dans VS2010. Les paramètres des répertoires VC++ se trouvaient auparavant dans Outils + Options, Projets et solutions, Répertoires VC++. Paramètres globaux qui s'appliquent à chaque projet créé sur la machine. Il est toujours là mais souligne que vous devez maintenant le modifier dans les paramètres de votre projet. Un effet secondaire de la refonte du moteur de construction dans VS2010, permettant la construction avec msbuild. La suppression des paramètres par projet aurait été logique mais cela casserait trop de projets existants.

En tant que tel, il est probablement préférable de traiter les paramètres des répertoires VC++ comme valeur par défaut de la machine. Il est automatiquement prédéfini par l'installateur VS. Ne bricolez avec elle que si vous avez besoin d'un ordre de recherche d'annuaire inhabituel, en mettant les emplacements personnalisés en dernier. Très inhabituel de le faire.

Cela fonctionne cependant. Et il a finalement été mis à profit. Renforcement du paramètre Platform Toolset dans VS2012 et versions ultérieures. Compilateur différent, éditeur de liens différent, répertoires #include différents, chemin de recherche de l'éditeur de liens différent. Modifié avec un seul réglage, Nice.

44
Hans Passant

Inclure les répertoires correspond à la variable d'environnement INCLUDE.

Les paramètres de répertoire affichés dans la fenêtre sont les répertoires que Visual Studio recherchera pour inclure les fichiers référencés dans vos fichiers de code source. Correspond à la variable d'environnement INCLUDE.

Alors que les Additional Include Directories sont transmis via un argument de ligne de commande (c'est-à-dire le \I option).

22
CodeNaked

CONFIGURER INCLURE DES CHEMINS

Répertoires VC++: inclure des répertoires

  • cette valeur est héritée de la variable d'environnement INCLUDE Windows définie en dehors de Visual Studio
    • les variables d'environnement peuvent être: globales à l'ordinateur ou avoir une portée de niveau utilisateur
    • Les variables d'environnement INCLUDE et LIB sont créées lorsque le SDK Microsoft Windows est installé avec Visual Studio .

C/C++: répertoires d'inclusion supplémentaires

  • est un paramètre au niveau du projet ... vous devrez définir cette valeur pour chaque projet de votre solution
  • cette valeur peut être conservée pour le contrôle de code source

NOTES COMPLÉMENTAIRES

Lequel devrais-je utiliser?

La décision d'utiliser des répertoires d'inclusion ou des répertoires d'inclusion supplémentaires dépendra de votre processus de développement de l'organisation. À mon avis, il est plus important:

  • que vous êtes capable de recréer l'environnement de développement de manière cohérente et fiable (pensez: remettre le code source à un autre développeur)
  • pour les développeurs au sein d'une organisation, utilisez une approche cohérente

Une note sur les macros

  • Les macros de configuration du projet C++ (à ne pas confondre avec la directive #define Du préprocesseur C++) héritent du contenu de différentes sources. Des macros comme ...
    • $(Include) hérite de leurs valeurs des variables d'environnement Windows
    • $(OutDir) hérite de leurs valeurs de Visual Studio IDE

LES RÉFÉRENCES

14
Pressacco