Comment inclure les sous-répertoires dans Visual Studio?
J'ai inclure un grand nombre de fichiers d'en-tête, qui sont dans différents sous-répertoires. Est-il un moyen dans Visual Studio (j'utilise de l'édition de 2005) pour définir un chemin de Visual Studio recherche également les sous-répertoires pour les fichiers d'en-tête?
OriginalL'auteur kklobucki | 2008-12-04
Vous devez vous connecter pour publier un commentaire.
Réglage du dossier des chemins de recherche dans les paramètres Visual Studio pour fixer un inclure la question n'est généralement pas vraiment une bonne idée de partir d'une conception de point de vue. Votre code sera moins portable à différentes machines avec différentes répertoire lay-outs.
Ma suggestion serait de s'installer sur une organisation de votre code, de sorte que les chemins relatifs des sous-répertoires (par rapport à votre y compris le code) sont fixes:
#include "subdirectory/somefile.h"
.Cela a l'avantage supplémentaire d'être en mesure de voir dans quel dossier de votre Solution contient les fichiers que est souvent des informations utiles lorsque vous essayez de trouver votre chemin autour de lui ou d'essayer de comprendre ce qu'est un fichier.
OriginalL'auteur
Nous n'avons pas trouvé un moyen de définition récursive de recherche de dossier dans Visual Studio (bien que Xcode n'a pas de problème de réglage et de leur utilisation). Ce que nous faisons est la liste de tous les répertoires dans un fichier, et de spécifier le fichier dans le C/C++ de Ligne de Commande options supplémentaires:
@"IncludeFolders.rsp"
Nous trouvons rarement des problèmes à l'aide de la recherche récursive, mais une inclusion accidentelle de `/" n'a ralentir les choses un bit à la fois.
OriginalL'auteur
Je crois à l'aide de la recherche récursive pour inclure des fichiers serait la cause de beaucoup plus de problèmes qu'elle n'en résout dans une forme de mauvais fichiers ou mauvaises versions. Après tout, vous devez définir les bons répertoires, une fois lorsque vous avez mis en place le projet.
OriginalL'auteur
J'ai trouvé que je peux raccourcir les longueurs de chemin d'accès dans la plupart des situations, y compris dans MSVC, par un léger de la main truc à l'aide de la commande SUBST. Je vais montrer l'exemple et pour raccourcir la valeur par défaut hérité de C++ chemins à inclure, mais vous voulez faire cela pour votre projet liées comprennent les chemins d'accès.
D'abord créer un ou plusieurs fichiers de commandes comme ceci (et de les exécuter à partir de l'Explorateur Windows ou la ligne de commande):
Vous pouvez créer un certain nombre de ces pour vos plus longs chemins. Dans le cas ci-dessus, je ne suis que le raccourcissement de la norme héritée des chemins que MSVC utilise par défaut. BTW, la commande Subst œuvres w/o droits d'administration, mais ne faites pas un pas sur un physique ou une lettre de lecteur mappé (je ne suis pas sûr de ce qui allait arriver, je ne veux pas tester pour le moment).
Cette étape est facultative. J'en MSVS 2010+ je ajouter des propriétés de la feuille. BTW, si vous ne savez pas sur les propriétés personnalisées fiches que vous devriez. Voir Les Pages De Propriétés (Visual C++).
VUE-Fenêtres-Fenêtre de Propriété, cliquez droit sur le projet dans le gestionnaire de la Propriété, Ajouter un Nouveau Projet de Feuille de Propriétés. En vertu de Utilisateur Macros, ajouter une Macro, par exemple MyProjectIncludePaths et définir la valeur (dans cet exemple) pour
--seulement 49 caractères dans cet exemple, ce qui est beaucoup plus court que le défaut de
qui, lors de la macro-expansion se traduit par
Selon mes calculs, la valeur par défaut est de 270 caractères--c'est à dire plus de 260 caractères--quelqu'un peut-il m'expliquer cela?
Dans les Pages de propriétés pour la projet (c'est à dire pas la propriété personnalisée de la feuille), dans mon exemple, je suis allé à Propriétés de Configuration-Répertoires de VC++ et changé le Inclure des Répertoires de la valeur à $(MyProjectIncludePaths), mais dans la pratique, il vous serait aller à l' (dans votre personnalisé feuille de propriétés de la page si vous en avez créé un) C/C++Général et ajouter $(MyProjectIncludePaths) à la autres Répertoires inclus.
En plus de l'héritage de 270 caractère chemins, j'ai été en mesure d'ajouter un peu de longueur raisonnable chemins sous autres Répertoires inclus. Peut-être que les autres Répertoires inclus a sa propre limite de longueur (?).
OriginalL'auteur