[C++] Łączenie dwóch plików
Ostatnio zmodyfikowano 2014-04-08 13:29
buena Temat założony przez niniejszego użytkownika |
[C++] Łączenie dwóch plików » 2014-04-08 11:02:36 Przykład z "Symfonii c++ standard" Grębosza Program podzielony na dwa pliki, wszystko tak jak w książce, jednak u mnie nie działa. -------------- Build: Debug in europa ---------------
Compiling: main.cpp In file included from C:\Users\Justyna\Desktop\14.program podzielony na dwa pliki\europa\main.cpp:4: C:\Users\Justyna\Desktop\14.program podzielony na dwa pliki\europa\nagl.h:2: error: expected initializer before 'extern' C:\Users\Justyna\Desktop\14.program podzielony na dwa pliki\europa\main.cpp: In function 'void funkcja_francuska()': C:\Users\Justyna\Desktop\14.program podzielony na dwa pliki\europa\main.cpp:11: error: 'ile_murzynow' was not declared in this scope C:\Users\Justyna\Desktop\14.program podzielony na dwa pliki\europa\main.cpp:14: error: 'funkcja_egipska' was not declared in this scope C:\Users\Justyna\Desktop\14.program podzielony na dwa pliki\europa\main.cpp: In function 'void funkcja_niemiecka()': C:\Users\Justyna\Desktop\14.program podzielony na dwa pliki\europa\main.cpp:21: error: 'ile_murzynow' was not declared in this scope Process terminated with status 1 (0 minutes, 0 seconds) 4 errors, 0 warnings
Plik: afryka.cpp #include <iostream> using namespace std;
#include "nagl.h" int ile_murzynow = 9; int main() { cout << "Poczatek programu\n"; funkcja_francuska(); funkcja_niemiecka(); cout << "Koniec programu \n"; }
void funkcja_egipska() { cout << "Jestem w Kairze !--------\n"; cout << "Na swiecie jest " << ile_murzynow << " murzynow, oraz " << ile_europejczykow << "europejczykow \n"; }
void funkcja_kenijska() { cout << "Jestem w Nairobi !-----------\n"; cout << "Na swiecie jest " << ile_murzynow << " murzynow, oraz " << ile_europejczykow << "europejczykow \n"; }
Plik: europa.cpp #include <iostream> using namespace std;
#include "nagl.h" int ile_europejczykow = 8;
void funkcja_francuska() { cout << "Jestem w Paryzu!*****************\n"; cout << "Na swiecie jest " << ile_murzynow << " murzynow, oraz " << ile_europejczykow << " europejczykow \n"; funkcja_egipska(); }
void funkcja_niemiecka( void ) { cout << "Jestemw Berlinie ! ***********************\n"; cout << "Na swiecie jest " << ile_murzynow << "murzynow, oraz " << ile_europejczykow << " europejczykow \n"; funkcja_kenijska(); }
Plik: nagl.h extern int ile_murzynow; extern int ile_europejczykow;
void funkcja_egipska(); void funkcja_kenijska(); void funkcja_francuska(); void funkcja_niemiecka();
|
|
alixir |
» 2014-04-08 11:10:46 Hmm dziwne. Skoro pliki nazywają się afryka.cpp, europa.cpp i nagl.h, to jakim cudem u ciebie kompilator kompiluje main.cpp. Wydaje mi się że problemem jest niepoprawnie utworzony project, a nie sam kod, bo ten jest poprawny. |
|
buena Temat założony przez niniejszego użytkownika |
» 2014-04-08 11:37:02 Rzeczywiście, źle było zapisane. Poprawiłam to, teraz wyświetla się coś takiego: C:\Users\Justyna\Desktop\14.program podzielony na dwa pliki\afryka\afryka.o:afryka.cpp:(.text+0x65): undefined reference to `ile_europejczykow' C:\Users\Justyna\Desktop\14.program podzielony na dwa pliki\afryka\afryka.o:afryka.cpp:(.text+0xe0): undefined reference to `ile_europejczykow' collect2: ld returned 1 exit status Process terminated with status 1 (0 minutes, 1 seconds) 4 errors, 0 warnings
|
|
alixir |
» 2014-04-08 12:39:20 Nadal uważam, że to nie wina kodu. Jakiego środowiska używasz? Czy masz poprawnie utworzony projekt, w którym znajdują się dwa pliki źrodłowe .cpp oraz jeden nagłowkowy .h ? Na moje oko podałaś niepełny log, a brakujące linie wyglądają pewnie tak: undefined reference to `funkcja_francuska()' undefined reference to `funkcja_niemiecka()' A to wskazywało by na to, że project nie zawiera pliku europa.cpp |
|
buena Temat założony przez niniejszego użytkownika |
» 2014-04-08 13:29:11 Błąd robiłam przy tworzeniu tych pików, zapisywałam jako oddzielne projekty i nie wiedziałam jak je powiązać, myślałam że zapisanie w jednym folderze wystarczy. Już działa, dziękuję za pomoc. |
|
« 1 » |