Undefined reference to (nazwa funkcji)
Ostatnio zmodyfikowano 2016-11-07 19:19
Borwar Temat założony przez niniejszego użytkownika |
Undefined reference to (nazwa funkcji) » 2016-11-07 18:02:52 Cześć, jestem bardzo początkującym programistą i korzystam z książki Symfonia C++ Standard Jerzego Grębosza, jest to o tyle ważne, że muszę o tym wspomnieć. Na samym początku wprowadzenia do tematu związanego z dzieleniem programu i pisaniem go w kilku plikach Pan Jerzy wszystko dokładnie objaśnia jednak ja mam problem. Próbowałem napisać taki sam program jaki podaje za przykład autor książki, jednak z moimi zmiennymi i całym tekstem... Jednak przy próbie kompilacji wyskoczył mi błąd. Później spróbowałem przepisać jego program słowo w słowo, ale dalej wyświetla się błąd podczas kompilowania programu. Przykładowo "Undefined reference to 'funkcja_niemiecka'. Mój kompilator to "GNU GCC Compiler". Main 1 #include <iostream> using namespace std; #include "naglowek.h" int ile_murzynow = 9; int main() { cout << "Początek 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."; } void funkcja_kenijska() { cout << "Jestem w Nairobi ! --------\n"; cout << "Na swiecie jest " << ile_murzynow << " murzynow, oraz " << ile_europejczykow << " europejczykow."; }
Nagłówek #ifndef NAGLOWEK_H_INCLUDED #define NAGLOWEK_H_INCLUDED #endif #include <iostream>
extern int ile_murzynow; extern int ile_europejczykow;
void funkcja_egipska(); void funkcja_kenijska(); void funkcja_francuska(); void funkcja_niemiecka();
Main 2 #include <iostream> using namespace std;
#include "naglowek.h" int ile_europejczykow = 9;
void funkcja_francuska() { cout << "Jestem w Paryzu ! --------\n"; cout << "Na swiecie jest " << ile_murzynow << " murzynow, oraz " << ile_europejczykow << " europejczykow."; funkcja_egipska(); } void funkcja_niemiecka() { cout << "Jestem w Berlinie ! --------\n"; cout << "Na swiecie jest " << ile_murzynow << " murzynow, oraz " << ile_europejczykow << " europejczykow."; funkcja_kenijska(); }
||=== Build: Debug in Hello (compiler: GNU GCC Compiler) ===| obj\Debug\main.o||In function `main':| C:\Users\Jakub\Documents\CodeBlocks\Hello\main.cpp|8|undefined reference to `funkcja_francuska()'| C:\Users\Jakub\Documents\CodeBlocks\Hello\main.cpp|9|undefined reference to `funkcja_niemiecka()'| obj\Debug\main.o||In function `Z15funkcja_egipskav':| C:\Users\Jakub\Documents\CodeBlocks\Hello\main.cpp|16|undefined reference to `ile_europejczykow'| obj\Debug\main.o||In function `Z16funkcja_kenijskav':| C:\Users\Jakub\Documents\CodeBlocks\Hello\main.cpp|22|undefined reference to `ile_europejczykow'| ||error: ld returned 1 exit status| ||=== Build failed: 5 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|
|
|
mateczek |
» 2016-11-07 19:19:12 jakie ide?? i czy pliki dodałeś do projektu ??(pytanie trochę retoryczne bo na 90% jestem pewny, że tu właśnie tkwi błąd) A błąd sugeruje, że nie skompilowałeś drugiego pliku cpp i go nie podlinkowałeś z pierwszym !!!
PS. pomyśl nad nazewnictwem. Tak aby jasno kojarzyło się z tym co jest w pliku. I takiej logiki by w pliku "moje.h" były deklaracje tych funkcji których implementacje są w pliku "moje.cpp" |
|
« 1 » |