Ĺadny brzuch
Witam,
Mam problem z C++. Uczę się z książki Symfonia C++ i właśnie przerabiam dział 5.11 i jest tam program w którym jest pokazane jak zastosować nagłówki. Program składa się z trzech plików:
Afryka.cpp
#include <iostream> #include <stdlib.h> #include "nagl.h" int ile_murzynow = 9; using namespace std; int main(int argc, char *argv[]) { cout << "Poczatek programu\n"; funkcja_francuska(); funkcja_niemiecka(); cout << "Koniec Programu\n"; system("PAUSE"); return 0; } int funkcja_egipska() { cout << "Jestem w Kairze!------ \n"; cout << "Na swiecie jest " << ile_murzynow << " murzynow, oraz " << ile_europejczykow << " europejczykow \n"; } int funckja_kenijska() { cout << "Jestem w Narobi! -----\n"; cout << "Na swiecie jest " << ile_murzynow << " murzynow, oraz " << ile_europejczykow << " europejczykow \n"; }
Europa.cpp
#include <iostream> #include <stdlib.h> #include "nagl.h" int ile_europejczykow = 8; using namespace std; int funkcja_francuska() { cout << "Jestem w Paryzu! ***\n"; cout << "Na swiecie jest " << ile_murzynow << " murzynow, oraz " << ile_europejczykow << " europejczykow \n"; funkcja_egipska(); } int funkcja_niemiecka() { cout << "Jestem w Berlinie! ***\n"; cout << "Na swiecie jest " << ile_murzynow << " murzynow, oraz " << ile_europejczykow << " europejczykow \n"; funkcja_kenijska(); }
Nagl.h
extern int ile_murzynow; extern int ile_europejczykow; int funkcja_egipska(); int funkcja_kenijska(); int funkcja_francuska(); int funkcja_niemiecka();
I chodzi o to, że mam problem z kompilacją. Gdy próbuje kompilować pokolei pliki wyskakują błędy, np. [Linker error] undefined reference to `funkcja_francuska()'. I zupełnie nie wiem co zrobić. Prosze o pomoc.
Pozdrawiam
P.S.
Używam Dev-C++ 4.9.9.0
w kod się dokładniej nie wczytywałem ale powinieneś je dodać do projektu jeżeli używasz Dev tak żeby były w jednym katalogu i żeby kmpilator o nich wiedział i powinno być wszystko OK.
Wszystkie pliki są w jednym katalogu i gdy je pisałem kompilator traktował je jako jeden projekt. <_<
sam niedawno to przerabiałem i nie było problemów. zabrałem się za analizę Twojego kodu w poszukiwaniu poważnych błędów, a rozwiązanie (jak to zwykle bywa)
okazało się śmieszne ;)
... int funckja_kenijska() ...
przeczytaj sobie kilka razy tą linijkę z Twojego kodu, a jeśli nadal nie wiesz o co chodzi to przeczytaj tą linijkę 200 razy i porównaj z tym co jest w książce.
literówki rulez :P
literówka literówką ale te funkcje nic nie zwracają a są typu int
Literówke poprawiłem, ale błąd nadal występuje <_< . I o co chodzi z tym linkowaniem ? Jak je połączyć ?
Literówke poprawiłem, ale błąd nadal występuje <_< . I o co chodzi z tym linkowaniem ? Jak je połączyć ?
a zmieniłaeś typ funkcji wszystkich!! i w definicjach w plikach .cpp i w deklaracji w pliku .h z int na void ??
albo bez zmiany typu dopisz do każdej funkcji :
return 0;
3. Obie rzeczy na raz - nie działa.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Mam problem z C++. Uczę się z książki Symfonia C++ i właśnie przerabiam dział 5.11 i jest tam program w którym jest pokazane jak zastosować nagłówki. Program składa się z trzech plików:
Afryka.cpp
#include <iostream> #include <stdlib.h> #include "nagl.h" int ile_murzynow = 9; using namespace std; int main(int argc, char *argv[]) { cout << "Poczatek programu\n"; funkcja_francuska(); funkcja_niemiecka(); cout << "Koniec Programu\n"; system("PAUSE"); return 0; } int funkcja_egipska() { cout << "Jestem w Kairze!------ \n"; cout << "Na swiecie jest " << ile_murzynow << " murzynow, oraz " << ile_europejczykow << " europejczykow \n"; } int funckja_kenijska() { cout << "Jestem w Narobi! -----\n"; cout << "Na swiecie jest " << ile_murzynow << " murzynow, oraz " << ile_europejczykow << " europejczykow \n"; }
Europa.cpp
#include <iostream> #include <stdlib.h> #include "nagl.h" int ile_europejczykow = 8; using namespace std; int funkcja_francuska() { cout << "Jestem w Paryzu! ***\n"; cout << "Na swiecie jest " << ile_murzynow << " murzynow, oraz " << ile_europejczykow << " europejczykow \n"; funkcja_egipska(); } int funkcja_niemiecka() { cout << "Jestem w Berlinie! ***\n"; cout << "Na swiecie jest " << ile_murzynow << " murzynow, oraz " << ile_europejczykow << " europejczykow \n"; funkcja_kenijska(); }
Nagl.h
extern int ile_murzynow; extern int ile_europejczykow; int funkcja_egipska(); int funkcja_kenijska(); int funkcja_francuska(); int funkcja_niemiecka();
I chodzi o to, że mam problem z kompilacją. Gdy próbuje kompilować pokolei pliki wyskakują błędy, np. [Linker error] undefined reference to `funkcja_francuska()'. I zupełnie nie wiem co zrobić. Prosze o pomoc.
Pozdrawiam
P.S.
Używam Dev-C++ 4.9.9.0
w kod się dokładniej nie wczytywałem ale powinieneś je dodać do projektu jeżeli używasz Dev tak żeby były w jednym katalogu i żeby kmpilator o nich wiedział i powinno być wszystko OK.
Wszystkie pliki są w jednym katalogu i gdy je pisałem kompilator traktował je jako jeden projekt. <_<
sam niedawno to przerabiałem i nie było problemów. zabrałem się za analizę Twojego kodu w poszukiwaniu poważnych błędów, a rozwiązanie (jak to zwykle bywa)
okazało się śmieszne ;)
... int funckja_kenijska() ...
przeczytaj sobie kilka razy tą linijkę z Twojego kodu, a jeśli nadal nie wiesz o co chodzi to przeczytaj tą linijkę 200 razy i porównaj z tym co jest w książce.
literówki rulez :P
literówka literówką ale te funkcje nic nie zwracają a są typu int
Literówke poprawiłem, ale błąd nadal występuje <_< . I o co chodzi z tym linkowaniem ? Jak je połączyć ?
Literówke poprawiłem, ale błąd nadal występuje <_< . I o co chodzi z tym linkowaniem ? Jak je połączyć ?

a zmieniłaeś typ funkcji wszystkich!! i w definicjach w plikach .cpp i w deklaracji w pliku .h z int na void ??
albo bez zmiany typu dopisz do każdej funkcji :
return 0;

3. Obie rzeczy na raz - nie działa.
