warum geht das denn nicht ???



  • Hallo.

    Ich habe folgenden Code geschrieben:

    Header:

    #ifndef CWCONTROL_H
    #define CWCONTROL_H
    
    class CWControl{
    private:
    public:
    	void initGame();
    };
    
    #endif
    

    Cpp:

    #ifndef CWCONTROL_CPP
    #define CWCONTROL_CPP
    
    #include "CWControl.h"
    #include <iostream>
    #include <cstdlib>
    #include "Galaxy.h"
    #include "Sunsystem.h"
    #include "Planet.h"
    
    using namespace std;
    
    int main(void){
    	CWControl Control;
    	Control.initGame();
    
    	return 0;
    }
    
    void initGame() {
    	char choice;
    	system("cls");
    	cout << "Willkommen zu Cluster Wars" << endl;
    	cout << "Du befindest dich im Hauptmenu und hast nun folgende Auswahlmöglichkeiten:\n\n" << endl;
    	cout << "(N)eues Spiel starten  (G)espeichertes Spiel laden  (I)nformationen zum Autor" << endl;
        /*cin >> choice;
    	switch (choice) {
    	case('n'):
    		cout << "Also ein neues Spiel starten" << endl; break;
    	case('g'):
    		cout << "Also ein gespeichertes Spiel laden" << endl; break;
    	case('i'):
    		cout << "Bla bla bla" << endl; break;
    	default:
    		cout << "Dies ist leider keine gültige eingabe" << endl;
    	}*/
    }
    
    #endif
    

    Die Fehlermeldung lautet:
    LIBCD.lib(crt0.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _main
    Debug/Cluster_Wars.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.

    Wäre nett wenn mir jmd helfen würde.



  • Sicher, dass die cpp-Datei in dein Projekt eingebunden ist?

    Du solltest die Funktion initGame so definieren:

    void CWControl::initGame()
    {
      /* */
    }
    

    Sonst weiß der Compiler nicht, dass die Funktion zur Klasse CWControl gehört.

    Include Guards (der ifdef/define Kram) sind in cpp-Dateien überflüssig. Das benötigen nur Header.



  • Alles klar danke.
    Es funktioniert jetzt.


Anmelden zum Antworten