Comment définir des chemins relatifs dans Visual Studio Project?

J’ai une bibliothèque et une application console qui utilise une bibliothèque. La bibliothèque a un dossier avec les fichiers source et en-tête.

Mon projet se trouve dans un répertoire child / inner mais ce répertoire de bibliothèque que je veux inclure se trouve dans un répertoire parent / upper.

Mon répertoire de projet:

H:\Gmail_04\gsasl-1.0\lib\libgsaslMain 

Les fichiers inclus sont ici:

 H:\Gmail_04\gsasl-1.0\src 

Comment puis-je utiliser des chemins relatifs au répertoire du projet pour inclure des dossiers se trouvant dans un répertoire parent / supérieur?

Si je te fais bien, tu as besoin de ..\..\src

Au lieu d’utiliser des chemins d’access relatifs, vous pouvez également utiliser les macros prédéfinies de VS pour y parvenir.

$(ProjectDir) pointe vers le répertoire de votre fichier .vcproj , $(SolutionDir) est le répertoire du fichier .sln .

Vous obtenez une liste des macros disponibles lors de l’ouverture d’un projet, allez à
Propriétés → Propriétés de configuration → C / C ++ → Général
et appuyez sur les trois points:

propriétés du projet

Dans la boîte de dialog à venir, cliquez sur Macros pour afficher les macros prédéfinies par Studio (consultez leur signification dans MSDN ):

répertoires d'inclusion supplémentaires

Vous pouvez utiliser les macros en tapant $(MACRO_NAME) (notez le $ et les parenthèses).

J’ai utilisé une syntaxe comme celle-ci avant:

 $(ProjectDir)..\headers 

ou

 ..\headers 

Comme d’autres l’ont fait remarquer, le répertoire de départ est celui dans vcproj trouve votre fichier de projet ( vcproj ou vcxproj ), et non l’emplacement de votre code principal.

Par défaut, tous les chemins que vous définissez seront relatifs. La question est: par rapport à quoi? Il existe plusieurs options: 1. Spécifier un fichier ou un chemin sans rien. Par exemple: ” mylib.lib “. Dans ce cas, le fichier sera recherché dans le répertoire de sortie . Toutefois, si vous ajoutez “.. \”, le chemin sera calculé à partir du chemin d’access réel où réside le fichier .sln. Veuillez noter que suite à une macro telle que $ (SolutionDir), il n’est pas nécessaire d’append une barre oblique inverse “\”. Utilisez simplement $ (SolutionDir) mylibdir \ mylib.lib . Si vous n’arrivez pas à le faire fonctionner, ouvrez le fichier de projet à l’extérieur du Bloc-notes et vérifiez-le.

Dans Visual Studio 2013, vous pouvez consulter les propriétés de tout fichier source. Cliquez sur le fichier via l’explorateur de la solution.

L’une de ces propriétés est le ” chemin relatif “.