[Visual C++] Comment forcer une priorité aux répertoires d'include ?

Comment forcer une priorité aux répertoires d'include ? [Visual C++] - C++ - Programmation

Marsh Posté le 03-11-2006 à 11:49:55    

Bonjour,
 
Je bosse sur un gros projet (incluant plusieurs projets).
J'ai un répertoire "common" à la racine dans lequel j'ai mis tous les fichiers qui peuvent se retrouver dans plusieurs des sous-projets.
Un des sous projets contient encore des sous-projets qui ont besoin à la fois des fichiers dans le common général mais aussi dans un répertoire common à eux.
Ca donne une arborescence genre :
 

Code :
  1. Projet principal
  2.      common
  3.      Projet1
  4.      Projet2
  5.           common2
  6.           SousProjetA
  7.           SousProjetB
  8.      Projet3
  9.      Projet4


 
Dans les paramètres des sous-projets A et B, j'ai donc indiqué au précompilateur d'aller chercher les fichiers dans common2 et common avec /I "common2" /I "common" (j'ai aussi essayé dans l'ordre /I "common" /I "common2" et ça fait pareil).
 
Maintenant mon problème, c'est qu'en fait, dans mon common2, j'ai des fichiers censés être utilisés A LA PLACE de certains fichiers de common. Mais le compilateur va me chercher systématiquement la version dans common.
 
 
Pour être plus précis, voici ce qui se passe :
 
Dans Projet2/SousProjetA/fichier1.cpp, j'ai un #include "toto.h".
Dans Projet2/SousProjetA/fichier2.cpp, j'ai un #include "tata.h".
toto.h existe en 2 versions distinctes dans common et common2.
tata.h n'existe que dans common.
Dans common/tata.h j'ai un #include "toto.h"
 
tata.h me prend évidemment le toto.h qui est dans son répertoire or je voudrais qu'il me prenne celui qui est dans common2... Mais uniquement pours les projets incluant common2.
Bref, lorsque le precompilateur va rechercher toto.h je voudrais le forcer à regarder d'abord dans common2.
 
Y a-t-il un moyen ?
 
Ma seule autre solution est de n'avoir qu'une seule version de toto.h (dans common) et de le modifier dans le genre :

Code :
  1. #ifdef PROJET2
  2.   // contenu de common2/toto.h
  3. #else
  4.   // contenu de common/toto.h
  5. #endif


 
L'ennui c'est que je n'ai pas qu'un seul fichier à modifier mais une grosse poignée !
J'aimerais donc "simplement" forcer Visual, pour les sous projets du Projet2, à chercher les fichiers includes D'ABORD dans common2 puis dans common (s'il ne les a pas trouvés dans common2).


Message édité par xman le 03-11-2006 à 11:55:44
Reply

Marsh Posté le 03-11-2006 à 11:49:55   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed