Как определить относительные пути в Visual Studio Project? - PullRequest
52 голосов
/ 01 августа 2011

У меня есть библиотека и консольное приложение, которое использует библиотеку.В библиотеке есть папка с исходными файлами и файлами заголовков.

Мой проект находится в дочернем / внутреннем каталоге, но тот каталог библиотеки, который я хочу включить, находится в родительском / верхнем каталоге.

MyКаталог проекта:

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

Включает файлы здесь:

H:\Gmail_04\gsasl-1.0\src

Как я могу использовать пути относительно каталога проекта, чтобы включить папки, которые находятся в родительском / верхнем каталоге?

Ответы [ 4 ]

136 голосов
/ 01 августа 2011

Вместо использования относительных путей, вы также можете использовать предопределенные макросы VS для достижения этого.

$(ProjectDir) указывает на каталог вашего .vcproj файла, $(SolutionDir) - это каталог.sln file.

При открытии проекта вы получите список доступных макросов, перейдите к
Свойства → Свойства конфигурации → C / C ++ → Общие
и нажмитетри точки:

project properties

В появившемся диалоговом окне нажмите Макросы , чтобы увидеть макросы, предварительно определенные в Studio (см. MSDN для их значения):

additional include directories

Вы можете использовать макросы, набрав $(MACRO_NAME) (обратите внимание на $ и округлые скобки).

39 голосов
/ 01 августа 2011

Если я вас правильно понял, вам нужно ..\..\src

21 голосов
/ 16 мая 2013

Ранее я использовал такой синтаксис:

$(ProjectDir)..\headers

или

..\headers

Как уже указывалось другими, начальный каталог - это тот, в котором находится файл вашего проекта (vcproj или vcxproj), а не там, где расположен ваш основной код.

5 голосов
/ 29 января 2016

По умолчанию все заданные вами пути будут относительными.Вопрос: по отношению к чему?Есть несколько вариантов:

  1. Указание файла или пути без него.Например: « mylib.lib ».В этом случае файл будет найден в Выходной каталог .
  2. Если вы добавите «.. \», путь будет рассчитан из фактического пути, в котором находится файл .sln.

Обратите внимание, что после такого макроса, как $ (SolutionDir), нет необходимости добавлять обратную косую черту "\".Просто используйте $ (SolutionDir) mylibdir \ mylib.lib .Если вы просто не можете заставить его работать, откройте файл проекта извне из Блокнота и проверьте его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...