Как определить относительные пути в Visual Studio Project? - программирование

Как определить относительные пути в Visual Studio Project?

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

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

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

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

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

H:\Gmail_04\gsasl-1.0\src

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

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

project properties

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

additional include directories

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

Ответ 3

Я использовал такой синтаксис, как это раньше:

$(ProjectDir)..\headers

или

..\headers

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

Ответ 4

По умолчанию все пути, которые вы определяете, будут относительными. Вопрос: относительно чего? Существует несколько вариантов: 1. Указание файла или пути, в котором ничего нет. Например: "mylib.lib". В этом случае файл будет искать в каталоге Output Directory. Однако, если вы добавите ".. \", путь будет вычисляться из фактического пути, где находится файл .sln. Обратите внимание, что после макроса, такого как $(SolutionDir), нет необходимости добавлять обратную косую черту "\". Просто используйте $(SolutionDir) mylibdir\mylib.lib. Если вы просто не можете заставить его работать, откройте файл проекта из "Блокнота" и проверьте его.

Ответ 5

В Visual Studio 2013 вы можете посмотреть на свойства любого исходного файла. Нажмите на файл через проводник решений.

Одним из таких свойств является " Относительный путь".