LNK2005 Beheben
-
@axels Blieb noch übrig, geht aber eher um das hauptproblem
-
Dann poste doch bitte mal die komplette Fehlermeldung. Ich vermute was ganz anderes...
-
@DocShoe Es sind 170
Severity Code Description Project File Line Suppression State Error LNK2005 "public: __thiscall olc::Decal::Decal(unsigned int,class olc::Sprite *)" (??0Decal@olc@@QAE@IPAVSprite@1@@Z) already defined in GameLogic.obj Snake C:\Users\games\source\repos\Snake\Screen.obj 1
Severity Code Description Project File Line Suppression State Error LNK2005 "public: __thiscall olc::Pixel::Pixel(unsigned char,unsigned char,unsigned char,unsigned char)" (??0Pixel@olc@@QAE@EEEE@Z) already defined in GameLogic.obj Snake C:\Users\games\source\repos\Snake\Screen.obj 1
-
@Gamestarplayer41 sagte in LNK2005 Beheben:
namespace olc {
struct Pixel;
}Warum das? Ich wette das ist es was dir um die Ohren fliegt!
-
@axels Also in der Screen.h kann ich entweder entscheiden, ob ich #include "olcPixelGameEngine.h" mache oder das forward deklariere. Letzteres scheint mir die bessere option tbh
-
@Gamestarplayer41
Lies dir mal den Kommentar in PixelEngine.h ab Zeile 1088 durch.
-
Es geht dabei bestimmt nicht um Include Reihenfolgen.
Die zweite Fehlermeldung die du gepostet hast sagt mir, dass die Klasse Pixel mehrfach definiert ist, da du meinst in einem dir nicht durchdrungenen Namespace selbst Klassen zu definieren. Das geht meist mit 1000 prozentiger Wahrscheinlichkeit schief.
-
@DocShoe Ah danke, warum das mitten in der Header ist frag ich mich, aber egal...
Nun stellt sich das (hoffentlich) letzte Problem. Also ich habe in der GameLogic.cpp die 2 zeilen eingefügt und in der Header rausgenommen. (Hoffentlich richtig, dort steht ja olcPixelGameEngine.cpp, aber das meint vermutlich die baseKlasse in meinem fall GameLogic oder?). Dann kommen folgende Fehler:
C2039,C2504,C2065, C2039
Severity Code Description Project File Line Suppression State Error C2039 'PixelGameEngine': is not a member of 'olc' Snake C:\Users\games\source\repos\Snake\GameLogic.h 7
Denke mal alle sind vom gleichen Problem Abhängig.
Verstehen warum das so ist tue ich leider nicht
-
@axels Wo hab ich im olc Namespace was selbst definiert? Ich habe doch nur Forward deklariert?
-
@Gamestarplayer41 Du darfst
OLC_PGE_APPLICATION
nur in einem .cpp File definieren.
Lösch die Definition aus dem Header-File raus und mach sie statt dessen in eines deiner .cpp Files rein.