Bekomme unlogischen Fehler beim Compilieren für Methodenimplementierung
-
Hallo,
ich hab folgenden Code:
main.cpp
#include "gui.h" int main() { GUI hotel; hotel.app(); }gui.h
class GUI { public: void app(); };gui.cpp
#include <iostream> using namespace std; #include "gui.h" void GUI::app() { int imenu; cout << "****************Willkommen bei Hotel XY****************" << endl; //Menu do { cout << " Bitte wählen sie aus." << endl; cout << " 1. freie Zimmer anzeigen" << endl; cout << " 2. Zimmer buchen" << endl; cout << " 3. Zimmer stornieren" << endl; cout << " 4. Programm beenden" << endl; cin >> imenu; }while(imenu!=5); }Der Compiler gibt folgende Fehlermeldung zurück, die keinen Sinn für mich ergibt.
/home/xxx/Projekt/main.o||In function `main':| main.cpp|| undefined reference to `GUI::app()'|Habe schon mit meinem Dozenten drüber geguckt, aber irgendwie seh ich da keinen Fehler. Hab ich irgendwas übersehen? Woran kann es liegen? Wenn ich die Implementierung der Methode direkt in die gui.h reinpacke, compiliert er mir das Ganze ohne Murren.
Programmiere unter folgender Umgebung:
Ubuntu 11.10 (Linux)
gcc 4.6.1
Code::Blocks 10.05Falls noch Informationen gebraucht werden einfach anfordern.
-
Du musst den Code beider Dateien zusammen linken. Wenn dein Dozent das nicht weiß: Ojeh.

-
SeppJ schrieb:
Du musst den Code beider Dateien zusammen linken. Wenn dein Dozent das nicht weiß: Ojeh.

Wie genau muss das aussehen? Steh da grad auf dem Schlauch.
Normalerweise ist der Dozent sehr kompetent. Vielleicht hat er in dem Moment nur nicht richtig drüber geschaut.
-
Beim Compileraufruf musste entweder beide Dateien angeben:
g++ main.cpp gui.cpp weitere_optionenOder du machst es Schrittweise (dies lässt sich auch wunderbar automatisieren):
g++ main.cpp -o main.o weitere_compiler_optionen g++ gui.cpp -o gui.o weitere_compiler_optionen g++ main.o gui.o weitere_linker_optionenDeine IDE macht diese Schritte auch sicherlich irgendwie automatisch, du musst es ihr bloß beibringen. Vermutlich indem du die Dateien zu einem einzelnen Projekt zusammen fasst oder ähnliches.
-
Ok danke jetzt hat es funktioniert.