Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

19.12.2013, 19:28

Problem mit Kapitel 12: Viele SDL-Befehle werden nicht erkannt

Ich bin gerade beim Durcharbeiten des Buches "C++ für Spieleprogrammierer" von Heiko Kalista. Beim Kompilieren vom Spiel in Kapitel 12 erhalte ich folgende Fehlermeldungen:

Fehler 3 error C2065: 'SDL_DOUBLEBUF': nichtdeklarierter Bezeichner c:\...\visual studio\kapitel 12\sdl_game\framework.cpp 25 1 SDL_Game
Fehler 7 error C2065: 'SDL_DOUBLEBUF': nichtdeklarierter Bezeichner c:\...\visual studio\kapitel 12\sdl_game\framework.cpp 31 1 SDL_Game
Fehler 4 error C2065: 'SDL_FULLSCREEN': nichtdeklarierter Bezeichner c:\...\visual studio\kapitel 12\sdl_game\framework.cpp 26 1 SDL_Game
Fehler 2 error C2065: 'SDL_HWSURFACE': nichtdeklarierter Bezeichner c:\...\visual studio\kapitel 12\sdl_game\framework.cpp 25 1 SDL_Game
Fehler 6 error C2065: 'SDL_HWSURFACE': nichtdeklarierter Bezeichner c:\...\visual studio\kapitel 12\sdl_game\framework.cpp 31 1 SDL_Game
Fehler 1 error C2065: 'SDL_SRCCOLORKEY': nichtdeklarierter Bezeichner c:\...\visual studio\kapitel 12\sdl_game\sprite.cpp 82 1 SDL_Game
Fehler 10 error C3861: "SDL_Flip": Bezeichner wurde nicht gefunden. c:\...\visual studio\kapitel 12\sdl_game\framework.cpp 108 1 SDL_Game
Fehler 9 error C3861: "SDL_GetKeyState": Bezeichner wurde nicht gefunden. c:\...\visual studio\kapitel 12\sdl_game\framework.cpp 46 1 SDL_Game
Fehler 5 error C3861: "SDL_SetVideoMode": Bezeichner wurde nicht gefunden. c:\...\visual studio\kapitel 12\sdl_game\framework.cpp 24 1 SDL_Game
Fehler 8 error C3861: "SDL_SetVideoMode": Bezeichner wurde nicht gefunden. c:\...\visual studio\kapitel 12\sdl_game\framework.cpp 30 1 SDL_Game
13 IntelliSense: Der Bezeichner ""SDL_DOUBLEBUF"" ist nicht definiert. c:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.cpp 25 20 SDL_Game
17 IntelliSense: Der Bezeichner ""SDL_DOUBLEBUF"" ist nicht definiert. c:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.cpp 31 20 SDL_Game
19 IntelliSense: Der Bezeichner ""SDL_Flip"" ist nicht definiert. c:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.cpp 108 2 SDL_Game
14 IntelliSense: Der Bezeichner ""SDL_FULLSCREEN"" ist nicht definiert. c:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.cpp 26 4 SDL_Game
18 IntelliSense: Der Bezeichner ""SDL_GetKeyState"" ist nicht definiert. c:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.cpp 46 16 SDL_Game
12 IntelliSense: Der Bezeichner ""SDL_HWSURFACE"" ist nicht definiert. c:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.cpp 25 4 SDL_Game
16 IntelliSense: Der Bezeichner ""SDL_HWSURFACE"" ist nicht definiert. c:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.cpp 31 4 SDL_Game
11 IntelliSense: Der Bezeichner ""SDL_SetVideoMode"" ist nicht definiert. c:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.cpp 24 15 SDL_Game
15 IntelliSense: Der Bezeichner ""SDL_SetVideoMode"" ist nicht definiert. c:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.cpp 30 15 SDL_Game


Ich habe bei den Eigenschaften des Programmes folgendes gemacht:
Unter Konfigurationseigenschaften->Debugging->Arbeitsverzeichnis: $(LibraryPath) hinzugefügt;
Unter Konfigurationseigenschaften->VC++-Verzeichnisse->Includeverzeichnisse: C:\Projekte\SDL2\include hinzugefügt;
Unter Konfigurationseigenschaften->VC++-Verzeichnisse->Bibliotheksverzeichnisse: C:\Projekte\SDL2\lib\x64 hinzugefügt;
Unter Konfigurationseigenschaften->C/C++-Verzeichnisse->Laufzeitbibliothek: auf Multithreaded-DLL gestellt;
Unter Konfigurationseigenschaften->Linker->Zusätzliche Abhängigkeiten: SDL2.lib SDL2main.lib SDL2test.lib hinzugefügt;

Außerdem habe ich SDL2.dll zu meinem Debugverzeichnis zugefügt.

Ich hoffe Ihr könnt mir helfen.
Danke im voraus

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

19.12.2013, 22:15

Klingt, als ob du SDL 2 benutzt.
Das Buch arbeitet aber mit der alten Version (1.2).

3

19.12.2013, 22:20

Ist das mit SDL 2 anders? Und wie lös ich das Problem?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

19.12.2013, 22:26

SDL 2 ist komplett anders.
Du löst das Problem, indem du die Version 1.2 runterlädst (ist die nicht auch auf der Buch-CD?).

5

19.12.2013, 22:43

Jetzt erkennt es wenigstens die SDL-Befehle, aber jetzt kommen folgende Fehlermeldungen:

Fehler 1 error C1083: Datei (Include) kann nicht geöffnet werden: "iostream": No such file or directory c:\...\visual studio\kapitel 12\sdl_game\framework.hpp 4 1 SDL_Game
Fehler 2 error C1083: Datei (Include) kann nicht geöffnet werden: "iostream": No such file or directory c:\...\visual studio\kapitel 12\sdl_game\framework.hpp 4 1 SDL_Game
14 IntelliSense: Der Bezeichner ""cout"" ist nicht definiert. c:\...\Kapitel 12\SDL_Game\Framework.cpp 13 3 SDL_Game
16 IntelliSense: Der Bezeichner ""cout"" ist nicht definiert. c:\...\Kapitel 12\SDL_Game\Framework.cpp 37 3 SDL_Game
15 IntelliSense: Der Bezeichner ""endl"" ist nicht definiert. c:\...\Kapitel 12\SDL_Game\Framework.cpp 13 55 SDL_Game
17 IntelliSense: Der Bezeichner ""endl"" ist nicht definiert. c:\...\Kapitel 12\SDL_Game\Framework.cpp 37 56 SDL_Game
11 IntelliSense: Der Bezeichner ""FILE"" ist nicht definiert. c:\Projekte\SDL1\include\SDL_rwops.h 102 50 SDL_Game
12 IntelliSense: Der Bezeichner ""fp"" ist nicht definiert. c:\Projekte\SDL1\include\SDL_rwops.h 102 56 SDL_Game
10 IntelliSense: Der Bezeichner ""va_list"" ist nicht definiert. c:\Projekte\SDL1\include\SDL_stdinc.h 583 87 SDL_Game
8 IntelliSense: Die Datei "Quelle" kann nicht geöffnet werden: "ctype.h". c:\Projekte\SDL1\include\SDL_stdinc.h 71 1 SDL_Game
18 IntelliSense: Die Datei "Quelle" kann nicht geöffnet werden: "iostream". c:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.hpp 4 1 SDL_Game
9 IntelliSense: Die Datei "Quelle" kann nicht geöffnet werden: "malloc.h". c:\Projekte\SDL1\include\SDL_stdinc.h 191 1 SDL_Game
6 IntelliSense: Die Datei "Quelle" kann nicht geöffnet werden: "stdarg.h". c:\Projekte\SDL1\include\SDL_stdinc.h 42 1 SDL_Game
5 IntelliSense: Die Datei "Quelle" kann nicht geöffnet werden: "stddef.h". c:\Projekte\SDL1\include\SDL_stdinc.h 41 1 SDL_Game
3 IntelliSense: Die Datei "Quelle" kann nicht geöffnet werden: "stdio.h". c:\Projekte\SDL1\include\SDL_stdinc.h 37 1 SDL_Game
4 IntelliSense: Die Datei "Quelle" kann nicht geöffnet werden: "stdlib.h". c:\Projekte\SDL1\include\SDL_stdinc.h 40 1 SDL_Game
7 IntelliSense: Die Datei "Quelle" kann nicht geöffnet werden: "string.h". c:\Projekte\SDL1\include\SDL_stdinc.h 60 1 SDL_Game
13 IntelliSense: Es wurde eine ")" erwartet. c:\Projekte\SDL1\include\SDL_rwops.h 102 58 SDL_Game

Wissen Sie, woran das liegen könnte?

6

19.12.2013, 22:53

Ich hatte bei der Include- und Bibliotheksangabe nicht von übergeordneten Projekten erben lassen. Allerdings zeigt er jetzt das an:

Fehler 1 error LNK1104: Datei "SDL2.lib" kann nicht geöffnet werden. C:\...\Visual Studio\Kapitel 12\SDL_Game\LINK SDL_Game

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

19.12.2013, 23:08

Fällt dir etwas auf an deinem Dateinamen "SDL2.lib"?

8

20.12.2013, 12:45

OK, hab das verbessert. Aber jetzt kommen solche Fehlermeldungen:

Fehler 22 error LNK1120: 18 nicht aufgelöste Externe C:\...\Visual Studio\Kapitel 12\SDL_Game\Debug\SDL_Game.exe SDL_Game
Fehler 13 error LNK2001: Nicht aufgelöstes externes Symbol "__imp___CrtDbgReportW". C:\...\Visual Studio\Kapitel 12\SDL_Game\Player.obj SDL_Game
Fehler 2 error LNK2001: Nicht aufgelöstes externes Symbol "_SDL_GetError". C:\...\Visual Studio\Kapitel 12\SDL_Game\Sprite.obj SDL_Game
Fehler 7 error LNK2001: Nicht aufgelöstes externes Symbol "_SDL_MapRGB". C:\...\Visual Studio\Kapitel 12\SDL_Game\Sprite.obj SDL_Game
Fehler 12 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp___CrtDbgReportW" in Funktion ""public: bool __thiscall std::_List_const_iterator<class std::_List_val<struct std::_List_simple_types<class CAsteroid> > >::operator==(class std::_List_const_iterator<class std::_List_val<struct std::_List_simple_types<class CAsteroid> > > const &)const " (??8?$_List_const_iterator@V?$_List_val@U?$_List_simple_types@VCAsteroid@@@std@@@std@@@std@@QBE_NABV01@@Z)". C:\...\Visual Studio\Kapitel 12\SDL_Game\Game.obj SDL_Game
Fehler 21 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_main" in Funktion "___tmainCRTStartup". C:\...\Visual Studio\Kapitel 12\SDL_Game\MSVCRT.lib(crtexe.obj) SDL_Game
Fehler 8 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_FillRect" in Funktion ""public: void __thiscall CFramework::Clear(void)" (?Clear@CFramework@@QAEXXZ)". C:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.obj SDL_Game
Fehler 5 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_Flip" in Funktion ""public: void __thiscall CFramework::Flip(void)" (?Flip@CFramework@@QAEXXZ)". C:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.obj SDL_Game
Fehler 16 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_FreeSurface" in Funktion ""public: __thiscall CSprite::~CSprite(void)" (??1CSprite@@QAE@XZ)". C:\...\Quellcode\Visual Studio\Kapitel 12\SDL_Game\Sprite.obj SDL_Game
Fehler 1 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_GetError" in Funktion ""public: bool __thiscall CFramework::Init(int,int,int,bool)" (?Init@CFramework@@QAE_NHHH_N@Z)". C:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.obj SDL_Game
Fehler 3 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_GetKeyState" in Funktion ""public: bool __thiscall CFramework::Init(int,int,int,bool)" (?Init@CFramework@@QAE_NHHH_N@Z)". C:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.obj SDL_Game
Fehler 20 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_GetTicks" in Funktion ""public: __thiscall CTimer::CTimer(void)" (??0CTimer@@QAE@XZ)". C:\...\Visual Studio\Kapitel 12\SDL_Game\Timer.obj SDL_Game
Fehler 10 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_Init" in Funktion ""public: bool __thiscall CFramework::Init(int,int,int,bool)" (?Init@CFramework@@QAE_NHHH_N@Z)". C:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.obj SDL_Game
Fehler 17 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_LoadBMP_RW" in Funktion ""public: void __thiscall CSprite::Load(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?Load@CSprite@@QAEXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)". C:\...\Visual Studio\Kapitel 12\SDL_Game\Sprite.obj SDL_Game
Fehler 6 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_MapRGB" in Funktion ""public: void __thiscall CFramework::Clear(void)" (?Clear@CFramework@@QAEXXZ)". C:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.obj SDL_Game
Fehler 14 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_PollEvent" in Funktion ""private: void __thiscall CGame::ProcessEvents(void)" (?ProcessEvents@CGame@@AAEXXZ)". C:\...\Visual Studio\Kapitel 12\SDL_Game\Game.obj SDL_Game
Fehler 9 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_PumpEvents" in Funktion ""public: void __thiscall CFramework::Update(void)" (?Update@CFramework@@QAEXXZ)". C:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.obj SDL_Game
Fehler 11 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_Quit" in Funktion ""public: void __thiscall CFramework::Quit(void)" (?Quit@CFramework@@QAEXXZ)". C:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.obj SDL_Game
Fehler 15 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_RWFromFile" in Funktion ""public: void __thiscall CSprite::Load(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?Load@CSprite@@QAEXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)". C:\Users\Edwin Weinholtz\Documents\Codebeispiele\Quellcode\Visual Studio\Kapitel 12\SDL_Game\Sprite.obj SDL_Game
Fehler 18 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_SetColorKey" in Funktion ""public: void __thiscall CSprite::SetColorKey(int,int,int)" (?SetColorKey@CSprite@@QAEXHHH@Z)". C:\...\Visual Studio\Kapitel 12\SDL_Game\Sprite.obj SDL_Game
Fehler 4 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_SetVideoMode" in Funktion ""public: bool __thiscall CFramework::Init(int,int,int,bool)" (?Init@CFramework@@QAE_NHHH_N@Z)". C:\...\Visual Studio\Kapitel 12\SDL_Game\Framework.obj SDL_Game
Fehler 19 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_UpperBlit" in Funktion ""public: void __thiscall CSprite::Render(float)" (?Render@CSprite@@QAEXM@Z)". C:\...e\Visual Studio\Kapitel 12\SDL_Game\Sprite.obj SDL_Game

Woran könnte das liegen?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

9

20.12.2013, 12:55

Du hast SDL nicht gelinkt.
Hast du das Buch eigentlich gelesen? Da sollte doch alles drin stehen, wie man das korrekt macht.

10

20.12.2013, 16:23

Natürlich habe ich das Buch gelesen. Allerdings ist die Beschreibung der Einbindung der SDL sehr kurz. Können Sie mir erklären, was ich jetzt machen musst.

Werbeanzeige