2011-12-23 11 views
8

Pracuję nad projektem i wciąż jestem zakłopotany, w jaki sposób mam importować pliki z innego katalogu. Oto jak niektóre moje pliki są zorganizowane:w tym pliki nagłówkowe z różnych katalogów?

-stdafx.h 
-core/ 
-->renderer.cpp 
-shapes/ 
-->sphere.h 
-->sphere.cpp 

w jaki sposób mogę uzyskać dostęp do stdafx.h i shapes/sphere.h z core/renderer.cpp?

+0

jakiego kompilatora używasz? –

+0

Microsoft Visual Studio 2010 –

+0

Uważaj na następujące sugestie dotyczące korzystania z notatek "../". Zobacz [Jakie są zalety ścieżki względnej dla nagłówka] (http://stackoverflow.com/questions/597318/). –

Odpowiedz

7

Istnieje wiele sposobów. Możesz na przykład #include "../stdafx.h". Bardziej powszechnym jest dodanie katalogu głównego projektu do ścieżki dołączania i użycie #include "shapes/sphere.h". Lub oddzielny katalog z nagłówkami w ścieżce dołączania.

+0

Jak mogę dodać do niego root? –

+0

To jest gdzieś w ustawieniach.Jak wskazuje Dave, jest to opcja '/ I', ale to, czego szukasz, jest prawdopodobnie czymś w ustawieniach projektu lub czymkolwiek się nazywa, od jakiegoś czasu nie widziałem Visual Studio. –

1

Można użyć ścieżek względnych:

#include "../stdafx.h" 
#include "../shapes/sphere.h" 

lub dodaj swój katalog projektu do kompilatora zawierać ścieżkę i odwołać je jak normalne:

#include "stdafx.h" 
#include "shapes/sphere.h" 

Można użyć /Icommand line option aby dodać ścieżkę lub ustaw ścieżkę w ustawieniach projektu.

+0

Jak dodać katalog projektu? Przepraszam, jestem nowy w C++ –

+0

Nie mam już programu Visual Studio (nie korzystałem z niego od około roku). Jednak ** [this page] (http://www.steptools.com/support/stdev_docs/help/settings_vc10.html) ** ma zrzut ekranu, który pokazuje dokładnie, gdzie ścieżka powinna zostać dodana w ustawieniach projektu. –

0

Jednym (złym) sposobem na to jest dodanie względnej ścieżki do pliku nagłówkowego, który ma być częścią linii #include. Na przykład:

to "nagłówków/myHeader.h"

include "../moreHeaders/myOtherHeader.h"

Wadą tego podejścia jest to, że wymaga, aby odzwierciedlać strukturę katalogów w Twój kod. Jeśli kiedykolwiek zaktualizujesz strukturę katalogów, Twój kod przestanie działać.

Lepszą metodą jest przekazanie kompilatorowi lub IDE, że masz kilka plików nagłówkowych w innej lokalizacji, tak aby wyglądały, gdy nie będzie można ich znaleźć w bieżącym katalogu. Można to zwykle zrobić, ustawiając "ścieżkę dołączania" lub "katalog wyszukiwania" w ustawieniach projektu IDE.

W Visual Studio możesz kliknąć prawym przyciskiem myszy swój projekt w Eksploratorze rozwiązań i wybrać "Właściwości", a następnie zakładkę "VC++ Directories". Z tego miejsca zobaczysz linię o nazwie "Uwzględnij katalogi". Dodaj tam swoje katalogi z zawartością.

W Code :: Blocks, przejdź do menu Project i wybierz "Build Options", następnie zakładkę "Search directories". Dodaj tam swoje katalogi z zawartością.

Za pomocą g ++ można użyć opcji -I, aby określić alternatywny katalog zawierający.

g ++ -o main -I/źródło/zawiera main.cpp

Zaletą tego podejścia jest to, że jeśli kiedykolwiek zmienić strukturę katalogów, trzeba tylko zmienić jeden kompilator lub ustawienie IDE zamiast każdego pliku kodu.

Powiązane problemy