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

11

16.02.2007, 14:51

*grummelgrummel*

Dieser Compiler will mich wohl ärgern? :evil:

Jetzt gibt er (ohne deine Codezeile ingefügt zu haben) diesen Fehler aus:

C-/C++-Quelltext

1
2
3
4
5
6
1>------ Erstellen gestartet: Projekt: SDL_Game, Konfiguration: Debug Win32 ------
1>Verknüpfen...
1>LINK : fatal error LNK1104: Datei "sdl.main.lib" kann nicht geöffnet werden.
1>Das Buildprotokoll wurde unter "file://c:\Blablablubb\Visual Studio 2005\Kapitel 12\Debug\BuildLog.htm" gespeichert.
1>SDL_Game - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Diese Datei, sdl.main.lib, ist aber gar nicht im SDL Ordner zu finden!
Menno... ...es tut mir leid wenn ich nerve, aber ich bin genauso genervt ;)

Psyco001

Frischling

Beiträge: 54

Wohnort: Berlin

  • Private Nachricht senden

12

16.02.2007, 14:55

meiner meinung nach gibt es keine SDL.main.lib sondern nur eine SDL.lib

vielleicht findest du ja den fehler im code?

13

16.02.2007, 15:08

Du hast Recht, die sdl.main.lib gibt es nicht :) war ein tippfehler meinerseits im extras>optionen Fenster. Dort hatte ich zusätzlich zu den sdl.lib und sdlmain.lib auch eine sdl.main.lib eingetragen, naja...

Jetzt kommt das hier:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1>------ Erstellen gestartet: Projekt: SDL_Game, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>Game.cpp
1>Code wird generiert...
1>Kompilieren...
1>Asteroid.cpp
1>Framework.cpp
1>main.cpp
1>Player.cpp
1>Shot.cpp
1>Sprite.cpp
1>Timer.cpp
1>Code wird generiert...
1>Verknüpfen...
1>Game.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp___CrtDbgReportW" in Funktion ""public: class std::list<class CAsteroid,class std::allocator<class CAsteroid> >::_Const_iterator<1> & __thiscall std::list<class CAsteroid,class std::allocator<class CAsteroid> >::_Const_iterator<1>::operator++(void)" (??E?$_Const_iterator@$00@?$list@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@QAEAAV012@XZ)".
1>Player.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp___CrtDbgReportW".
1>.\Debug/SDL_Game.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://c:\blablalubb\Visual Studio 2005\Kapitel 12\Debug\BuildLog.htm" gespeichert.
1>SDL_Game - 3 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Bei den ganzen Fehlern frage ich mich mich ob es nicht klüger wäre einfach mal alles an compilern runterlöschen und versuchen von Anfang alles richtig einzurichten?

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

14

16.02.2007, 16:22

Ist sicher sinnvoll, nochma ordentlich einen Compiler auf dem System einzurichten, ich vermute aber mal, dass dein aktuelles Problem was anderes ist. Poste am besten mal relevanten Code aus Game.cpp
Interessant wäre vor allem, ob du irgendwo dort const Variablen erstellst oder verwendest.

Ich schätze mal, die CAsteroid Klasse ist nicht auf Verwendung von const ausgelegt, wird aber mit konstanten Variablen verwendet...

15

16.02.2007, 17:32

Ich habe den Code so wie er auf der CD beim Buch war, reingeladen.
Daher kenne ich mich auch nicht so mit ihm aus...

Zitat

Poste am besten mal relevanten Code aus Game.cpp


Die Preisfrage ist jetzt welcher Code relevant ist. Alles scheint da zu funktionieren. Bei Linkerfehlern werde ich ja nicht auf die Zeiler in der der Fehler ist aufmerksam gemacht. Und der ganze Code ist zu lang zum posten

EDIT: Ich habe mir den Code von Game.cpp und Asteroid.cpp durchgesehen und es gitb keine Variable die mit const deklariert wurde :?

babelfish

Alter Hase

Beiträge: 1 222

Wohnort: Schweiz

Beruf: Informatiker

  • Private Nachricht senden

16

16.02.2007, 17:42

Versuch von Debug mal auf Release umzustellen

17

16.02.2007, 17:45

Toller Geistesblitz, aber funktioniert nicht...

Wie immer diese Fehler:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1>------ Erstellen gestartet: Projekt: SDL_Game, Konfiguration: Release Win32 ------
1>Kompilieren...
1>Timer.cpp
1>Sprite.cpp
1>Shot.cpp
1>Player.cpp
1>main.cpp
1>Game.cpp
1>Framework.cpp
1>Asteroid.cpp
1>Code wird generiert...
1>Verknüpfen...
1>LIBCMT.lib(crt0.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_main" in Funktion "___tmainCRTStartup".
1>.\Release/SDL_Game.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://c:\blablablubb\Visual Studio 2005\Kapitel 12\Release\BuildLog.htm" gespeichert.
1>SDL_Game - 2 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

18

16.02.2007, 18:18

ich tippe drauf, dass du ein Win32 Konsolenprojekt hast aber keine main funktion...

19

16.02.2007, 18:45

Doch, hier:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
int main (int argc, char *argv[])
{
  // Framework initialisieren

  if (g_pFramework->Init (800, 600, 16, true) == false)
    return (0);
  
  // Neue Instanz des Spiels

   CGame Game;

  // Spiel initialisieren

  Game.Init ();

  // Spiel laufen lassen. Diese Funktion läuft so lange,

  // bis das Spiel geschlossen oder die Escape-Taste

  // gedrückt wird

  Game.Run ();

  // Spiel beenden

  Game.Quit ();

  // Framework beenden

  g_pFramework->Quit ();
  g_pFramework->Del ();

  return (0);

20

17.02.2007, 11:28

So...

Um die Suche nach dem Fehler zu vereinfachen hab ich mal einen gaaaanz einfachen Code selbst geschrieben. Daher kenn ich mich jetzt auch damit aus. Die ist übrigens mein erster code den ich mit der der SDL geschrieben hab, also bitte nicht hauen wenn etwas unschön gelöst wurde o.ä. Das Programm soll ein Fenster mit 800x600 Pixeln erzeugen, komplett weiß sein und wenn man ESCAPE drückt sich wieder schliessen. Im Grunde ist das aber ein Zusammenklau und runterreduzier von dem Beispiel 12, siehe oben.

Hier der ganze Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <SDL.h>
#include <iostream.h>

SDL_Surface *m_pscreen;
Uint8       *m_pKeystate;
int ende = 1;

int main(int argc, char *argv[])
{
if (SDL_Init (SDL_INIT_VIDEO | SDL_INIT_TIMER) == -1)
{
    cout<<"SLD konnte nicht initialisiert werden!"<<endl;
    cout<<"Fehlermeldung: "<<SDL_GetError () << endl;
    SDL_Quit();
    return(1);
}

m_pscreen = SDL_SetVideoMode (800, 600, 16, SDL_HWSURFACE);
SDL_FillRect (m_pscreen, NULL, SDL_MapRGB(m_pscreen->format, 255, 255, 255));

if (m_pscreen == NULL)
{
    cout<<"Videomodus konnte nicht Initialisiert werden!"<<endl;
    cout<<"Fehlermeldung: "<<SDL_GetError () << endl;
    SDL_Quit();
    return(1);
}

m_pKeystate = SDL_GetKeyState(NULL);

while(ende =! 0) {

if(m_pKeystate[SDLK_ESCAPE]) { ende = 0;}

}
SDL_Quit();

return(0);
}


Das gibt jetzt keine Fehler mehr bein Compilieren, aber beim Ausführen kommt eine Fehler-Messagebox, mit dem Text "Die Datei "SDL.dll" konnte nicht gefunden werden. Neuinstallation der Anwendung könnte das Problem beheben". Wo ist denn diese "SDL.dll", die kann ich nirgends finden?

Werbeanzeige