Jak definiować ścieżki względne w projekcie Visual Studio?

Mam bibliotekę i aplikację konsolową, która korzysta z biblioteki. Biblioteka posiada folder z plikami źródłowymi i nagłówkowymi.

Mój projekt znajduje się w katalogu podrzędnym/wewnętrznym, ale katalog biblioteki, który chcę dołączyć, znajduje się w katalogu nadrzędnym/górnym.

Mój katalog projektów:

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

Zawiera pliki są tutaj:

H:\Gmail_04\gsasl-1.0\src

Jak mogę używać ścieżek względem katalogu projektu do dołączania folderów znajdujących się w katalogu nadrzędnym/górnym?

Author: MLM, 2011-08-01

5 answers

If I get you right, you need ..\..\src

 38
Author: MByD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-01 07:41:04

Zamiast używać ścieżek względnych, możesz również użyć predefiniowanych makr VS, aby to osiągnąć.

$(ProjectDir) wskazuje na katalog Twojego pliku .vcproj, $(SolutionDir) jest katalogiem pliku .sln.

Po otwarciu projektu otrzymasz listę dostępnych makr, przejdź do
Właściwości → Właściwości konfiguracji → C / C++ → ogólne
i uderz w trzy kropki:

właściwości projektu

W nadchodzącym oknie dialogowym naciśnij makra, aby zobaczyć makra, które są predefiniowane przez Studio (skonsultuj MSDN ze względu na ich znaczenie):

dodatkowe katalogi include

Możesz użyć makr wpisując $(MACRO_NAME) (zwróć uwagę na $ i okrągłe nawiasy).

 121
Author: eckes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-22 06:30:48

Używałem już takiej składni:

$(ProjectDir)..\headers

Lub

..\headers

Jak zauważyli inni, katalog startowy jest tym, w którym znajduje się Twój plik projektu(vcproj lub vcxproj), a nie tym, w którym znajduje się twój główny kod.

 19
Author: yvanvds,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-17 02:22:35

Domyślnie wszystkie zdefiniowane ścieżki będą względne. Pytanie brzmi: w stosunku do czego? Istnieje kilka opcji:

  1. określanie pliku lub ścieżki bez niczego przed nim. Na przykład: "mylib.lib ". W takim przypadku plik zostanie przeszukiwany w katalogu wyjściowym .
  2. Jeśli dodasz "..\ ", ścieżka zostanie obliczona z rzeczywistej ścieżki, gdzie .plik sln rezyduje.

Proszę zauważyć, że po makrze takim jak $(SolutionDir) nie ma trzeba dodać ukośnik wsteczny"\". Wystarczy użyć $(SolutionDir)mylibdir\mylib.lib . Jeśli po prostu nie możesz go uruchomić, otwórz plik projektu zewnętrznie z notatnika i sprawdź go.

 4
Author: Michael Haephrati,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-12 20:29:33

W Visual Studio 2013 Możesz sprawdzić właściwości dowolnego pliku źródłowego. Kliknij plik za pomocą Eksploratora rozwiązań.

Jedną z tych właściwości jest " ścieżka względna ".

 0
Author: user1741137,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-19 12:14:36