web-dev-qa-db-fra.com

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 enfant/interne, mais le répertoire de la bibliothèque que je souhaite inclure se trouve dans un répertoire parent/supérieur.

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 utiliser les chemins relatifs au répertoire du projet pour inclure les dossiers situés dans un répertoire parent/supérieur?

54
Ali Ahmed

Si je vous ai bien compris, vous avez besoin de ..\..\src

39
MByD

Au lieu d'utiliser des chemins relatifs, vous pouvez également utiliser les macros prédéfinies de VS pour atteindre cet objectif.

$(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 la configuration → C/C++ → Général
et cliquez sur les trois points:

project properties

Dans la boîte de dialogue suivante, appuyez sur Macros pour afficher les macros prédéfinies par le Studio (consultez MSDN pour connaître leur signification) :

additional include directories

Vous pouvez utiliser les macros en tapant $(MACRO_NAME) (notez les crochets $ Et arrondis ).

140
eckes

J'ai déjà utilisé une syntaxe comme celle-ci:

$(ProjectDir)..\headers

ou

..\headers

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

21

Par défaut, tous les chemins que vous définissez seront relatifs. La question est: par rapport à quoi? Il y a plusieurs options:

  1. Spécifier un fichier ou un chemin avec rien avant. Par exemple: " mylib.lib ". Dans ce cas, le fichier sera recherché dans le répertoire Répertoire de sortie.
  2. Si vous ajoutez ".. \", le chemin sera calculé à partir du chemin réel où réside le fichier .sln.

Veuillez noter que suite à une macro telle que $ (SolutionDir), il n'est pas nécessaire d'ajouter une barre oblique inversée "\". Utilisez simplement $ (SolutionDir) mylibdir\mylib.lib . Si vous ne pouvez tout simplement pas le faire fonctionner, ouvrez le fichier de projet de l'extérieur du Bloc-notes et vérifiez-le.

5
Michael Haephrati