"nicht aufgelöste Extenre" [C++/SFML]
-
Hallo zusammen,
ich versuche gerade seit guten 2 Stunden ein Problem zu lösen, das ich mit SFML habe. Hier nur ein paar Infos:
- Visual Studio 2013
- Win 7
- SFML/C++
so, das Problem ist, das ich immer diese Fehlermeldung erhalte:Fehler 1 error LNK2001: Nicht aufgelöstes externes Symbol ""public: void __thiscall Kollision::box2box(class std::_Vector_iterator<class std::_Vector_val<struct std::_Simple_types<class Bullet> > > &,class std::vector<class Zombie,class std::allocator<class Zombie> > &)" (?box2box@Kollision@@QAEXAAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@VBullet@@@std@@@std@@@std@@AAV?$vector@VZombie@@V?$allocator@VZombie@@@std@@@3@@Z)". C:\Users\Moritz\Documents\Visual Studio 2013\Projects\SFML\SFML\SFML.obj SFML
Ich hab schon gegooglet, was zu bedeuten hab usw. und hab gelesen das bei manchen z.B. eine Bibliothek nicht richtig gelinkt wurde.
Das kann ich allerdings zu 99% ausschließen, da es vor 2 Stunden nämlich noch ging und davor auch.
Also hab ich jetzt ewig die .h Dateien hin und her geschoben und Zeug in der stdafx.h geändert, aber es bleibt immer die selbe Meldung.Hier mal mein Code:
main.cpp (Ausschnitt):
//hier oben includes und bla for (it = bullets.begin(); it != bullets.end();) { if (!it->Active) { it = bullets.erase(it); } else { collision.box2box(it, zombies); it->Update(window, ElapsedTime); it->Render(window); ++it; } }
collision.h:
#include "zombie.h" #include "bullet.h" #include <vector> class Kollision { public: void box2box(std::vector<Bullet>::iterator &Obj, std::vector<Zombie> &ObjList); };
collision.cpp:
#include "stdafx.h" void box2box(std::vector<Bullet>::iterator &Obj, std::vector<Zombie> &ObjList) { for (int i = 0; i < ObjList.size(); i++) { if (ObjList[i].Active) { if (Obj->BulletSprite.getGlobalBounds().intersects(ObjList[i].zombieSprite.getGlobalBounds())) { ObjList[i].Active = false; Obj->Active = false; } } } }
Ich hoffe, mir kann jemand helfen...
Danke und viele Grüße
Cyax
-
In der collision.cpp definierst du eine FREIE Funktion box2box.
Du willst aber eine MEMBER Funktion deklarieren, dazu musst du Kollision::box2box schreiben.
Und wieso überhaupt eine Klasse, die hat doch gar keine Membervariablen?
Und das hat übrigens nichts mit SFML zu tun.
-
Ah ja, danke funktioniert
...inwiefern meinst du das das nichts mit SFML zu tun hat??
Gruß
Cyax
-
Cyax schrieb:
Ah ja, danke funktioniert
...inwiefern meinst du das das nichts mit SFML zu tun hat??Dieses Problem ist eins mit der Benutzung von C++ an sich, nicht allein mit SFML:
http://ideone.com/eetFNz