Podzial projektu na kilka plikow

0

Witam
Próbuje sobie dzielnie projektu na pliki źródłowe i nagłówkowe. Projekt podzieliłem w ten sposób ze mam 3 pliki main.cpp, test.cpp,test.hpp.
TestProjekt
|
|--main.cpp
|--test.hpp
|--test.cpp
|
Treść plików jest następująca:
main.cpp

#include <iostream>
#include "test.hpp"

int main()
{
    writeOnScreen_Hello();
    return 0;
}

====================
test.hpp

#ifndef TEST_HPP_INCLUDED
#define TEST_HPP_INCLUDED

void writeOnScreen_Hello();

#endif // TEST_HPP_INCLUDED

====================
test.cpp

#ifndef TEST_CPP_INCLUDED
#define TEST_CPP_INCLUDED

#include "test.hpp"
#include <iostream>

void writeOnScreen_Hello()
{
    std::cout << "HELLO" << std::endl;
}

#endif // TEST_CPP_INCLUDED

Problem polega na tym że w obecnej konfiguracji się kompiluje.
Spróbowałem utworzyć sobie osobne foldery na pliki nagłówkowe .hpp oraz źródłowe .cpp , oto wynik.
TestProjekt
|
|---main.cpp
|---src
| |-test.cpp
|
|--include
| |-test.hpp
|
w main.cpp zmieniłem

#include "test.hpp"

na

#include "include/test.hpp"

reszta bez zmian.
Podczas kompilacji otrzymumję

test.cpp|4|fatal error: test.hpp: No such file or directory|

I nie wiem teraz jaką podać ścieżkę bo przecież nie bezwzględną ;). Przed przystąpieniem do podziału projektu przeczytałem
http://cpp0x.pl/kursy/Kurs-C++/Dzielenie-kodu-na-kilka-plikow-zrodlowych/310 i albo nie widziałem albo nie ma tam 'mojego problemu'

1

test.cpp|4|fatal error: test.hpp: No such file or directory| kompilator wyraźnie mówi, gdzie jest błąd: zapomniałeś to samo zrobić w pliku test.cpp -> #include "include/test.hpp"

0

Ale po co chcesz oddzielnie trzymać pliki hpp od plików cpp? Ja trzymam zawsze w tym samym katalogu src i już. Traktuję to jak unit i takie rozwiązanie jest ok.

0

Hmmm ... wiesz nigdy nie dzieliłem plików. Twierdzisz ze lepiej będzie stworzyć folder np. ManagerOkna i w nim trzymać ManagerOkna.hpp i ManagerOkna.cpp?

===
EDIT1

Próbowałem podzielić na foldery osobne pliki bo myślałem że tak się robi, a myślałem tak bo CodeBlock gdy kazałem mu otworzyć klasę File>>new>>class otworzył mi jej pliki .hpp i .cpp w osobnych folderach

2

Ustaw ścieżkę do include directory (względną)/ podaj -I.

0

Chciałbym się jeszcze spytać przy okazji - jak należy trzymać pliki .cpp .hpp np jeżeli mamy klase?
W osobnych folderach - headers i include czy tez w jednym folderze pliki mieć .cpp i .hpp?
Myśle że lepiej będzie stosować te drugą opcję.

1
kacper546 napisał(a):

Hmmm ... wiesz nigdy nie dzieliłem plików. Twierdzisz ze lepiej będzie stworzyć folder np. ManagerOkna i w nim trzymać ManagerOkna.hpp i ManagerOkna.cpp
Ja tak właśnie robię. Wyjątkiem jest gdy piszę jakąś libkę. Wtedy rzeczywiście pliki *.h (ale tylko takie które zawierają udostępniany interfejs) wrzucam do oddzielnego katalogu.

kacper546 napisał(a):

Chciałbym się jeszcze spytać przy okazji - jak należy trzymać pliki .cpp .hpp np jeżeli mamy klase?
W osobnych folderach - headers i include czy tez w jednym folderze pliki mieć .cpp i .hpp?
Myśle że lepiej będzie stosować te drugą opcję.
Tu też bym był za trzymaniem tego w 1 katalogu. Jednak obie drogi są poprawne. Dla mnie większy porządek jest jak w drzewku projektu obok pliku *.h znajduje się *.cpp.

1 użytkowników online, w tym zalogowanych: 0, gości: 1