N'abend,
zur Zeit programmieren ein Freund und ich an einem kleinen textbasierten Rollenspiel. Dabei nutzen wir einen struct um die Charaktereigenschaften in "einem Packen" nutzen zu können. Dieses struct ist global definiert. Nun machen wir eine Art Vordeklaration von einer Funktion, die später noch kommt (spielemenue), damit ich sie in der Funktion neues_spiel nutzen kann (hat uns unserer Lehrer so gesagt).
Wenn ich das ganze mit Dev-C++ (Version 4.9.9.2) compilieren will. bekomm ich nur folgende Fehlermeldungen:
Was ich bisher zu dem Problem bei Google gefunden habe ist, dass meist irgendwelche externen Dateien nicht richtig durch den Linker eingebunden werden. Da ich aber weder auf externe Dateien zugreife (ausgenommen die header) und mich auch nicht mit dem Linker von Dev-C++ auskenne, bin ich jetzt etwas aufgeschmissen und auf Hilfe angewiesen.
Der Compiler Log schmeißt dies noch aus:
Danke schonmal für eure Tipps
0wnZ
zur Zeit programmieren ein Freund und ich an einem kleinen textbasierten Rollenspiel. Dabei nutzen wir einen struct um die Charaktereigenschaften in "einem Packen" nutzen zu können. Dieses struct ist global definiert. Nun machen wir eine Art Vordeklaration von einer Funktion, die später noch kommt (spielemenue), damit ich sie in der Funktion neues_spiel nutzen kann (hat uns unserer Lehrer so gesagt).
Code:
typedef struct chark
{
char name[30], klasse[10];
int level, staerke, vert, bew, gesund;
};
int spielemenue(chark *);
int neues_spiel()
{
chark assasine = {"", "Assasine", 1, 8, 3, 10, 6 };
chark *pa = &assasine;
chark krieger = {"", "Krieger", 1, 10, 8, 3, 6 };
chark *pk = &krieger;
chark jaeger = {"", "Jaeger", 1, 3, 8, 10, 6 };
chark *pj = &jaeger;
char cname[30];
int cklasse;
system("cls");
printf("\t\tWillkommen in der World of Wtfcraft!\n");
printf("\t\t Bitte Geben Sie Ihren Namen an: \n\t\t\t\t");
scanf("%s", &cname);
system("cls");
printf("\t\tBitte geben Sie Ihre gewuenschte Charakterklasse an:\n\n");
printf("\t\t\t\tAssasine (1)\n");
printf("\t\t\t\tKrieger (2)\n");
printf("\t\t\t\tJaeger (3)\n\t\t\t\t\t ");
scanf("%d", &cklasse);
if (cklasse == 1)
{
//Assasine
strcpy(assasine.name, cname);
spielemenue(pa);
} else if (cklasse == 2)
{
//Krieger
strcpy(krieger.name, cname);
spielemenue(pk);
} else if (cklasse == 3)
{
//Jaeger
strcpy(jaeger.name, cname);
spielemenue(pj);
} else {
printf("Falsche Eingabe");
system("pause");
neues_spiel();
}
}
.
.
.
int spielemenue(chark pointer)
{
int auswahl = 0;
system("cls");
printf("\t\t\tKaempfen (1)\n");
printf("\t\t\tTrainieren (2)\n");
printf("\t\t\tErholen (3)\n");
printf("\t\t\tShop (4)\n");
printf("\t\t\tCharakter (5)\n");
printf("\t\t\tBeenden (6)\n\t\t\t\t ");
scanf("%d", &auswahl);
switch(auswahl)
{
case 1:
kaempfen();
break;
case 2:
trainieren();
break;
case 3:
erholen();
break;
case 4:
shop();
break;
case 5:
//charakter();
break;
case 6:
beenden();
break;
}
}
Code:
[Linker error] undefined reference to `spielemenue(chark*)'
[Linker error] undefined reference to `spielemenue(chark*)'
[Linker error] undefined reference to `spielemenue(chark*)'
ld returned 1 exit status
Der Compiler Log schmeißt dies noch aus:
Code:
g++.exe "C:\Users\******\Downloads\main(3).cpp" -o "C:\Users\******\Downloads\main(3).exe" -I"C:\Programme\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Programme\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Programme\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Programme\Dev-Cpp\include\c++\3.4.2" -I"C:\Programme\Dev-Cpp\include" -L"C:\Programme\Dev-Cpp\lib"
Danke schonmal für eure Tipps
0wnZ
Zuletzt bearbeitet: