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

06.11.2008, 19:49

[Erledigt] Unaufgelöste externe Verweise / SDL_Image

Tag,

bin grad dabei mich ein bisschen mit der SDL anzufreunden.

Hab ein Code geschrieben, der (denk ich) funktioniert, nur findet er die gelinkte Library nicht (obwohl ich gar nicht weiß ob ich die benötigte lib überhaupt schon gelinkt hab):

Quellcode

1
2
3
4
5
6
7
8
1>------ Erstellen gestartet: Projekt: SDL_GAME_001, Konfiguration: Release Win32 ------
1>Verknüpfen...
1>main.obj : error LNK2001: Nicht aufgelöstes externes Symbol "_IMG_Load".
1>sdlmain.lib(SDL_win32_main.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "_SDL_main".
1>C:\Users\Uwe\Documents\Visual Studio 2008\Projects\SDL_GAME_001\Release\SDL_GAME_001.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://c:\Users\Uwe\Documents\Visual Studio 2008\Projects\SDL_GAME_001\SDL_GAME_001\Release\BuildLog.htm" gespeichert.
1>SDL_GAME_001 - 3 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Tja, ich hab leider keine Ahnung welche .lib ich da Linken muss. Ich vermute das es an SDL_Image liegt, welches ich in das Projekt eingebunden hab, aber keine .lib Datei dazu gefunden hab.

// Edit:
Das war doch so klar, das wenn ich frag, den einen Fehler nach 5 Minuten finde. Jetzt gibt es trotz einbinden von SDL_image.lib aber immer noch ein nicht extern aufgelößtes Symbol:

Quellcode

1
2
3
4
5
6
7
1>------ Erstellen gestartet: Projekt: SDL_GAME_001, Konfiguration: Release Win32 ------
1>Verknüpfen...
1>sdlmain.lib(SDL_win32_main.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "_SDL_main".
1>C:\Users\Uwe\Documents\Visual Studio 2008\Projects\SDL_GAME_001\Release\SDL_GAME_001.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://c:\Users\Uwe\Documents\Visual Studio 2008\Projects\SDL_GAME_001\SDL_GAME_001\Release\BuildLog.htm" gespeichert.
1>SDL_GAME_001 - 2 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


kann das an sdl.lib oder sdlmain.lib liegen? Hab die auf jedenfall drinn, geht trozdem net. Da muss noch was fehlen, aber was?

2

06.11.2008, 20:04

Hast du denn den Pfad zur SDL_image.lib in den Projekteinstellungen angegeben?

3

06.11.2008, 20:17

jop, wie gesagt geht des mit dem SDL_image.lib jetzt auch, denn nach einbinden war der Fehler weg. Ich such jetzt nach einer Möglichkeit den _SDL_main Fehler wegzubekommen.

// Edit: Hab gesehn das mehrere Leute den Fehler schon hatten. Hab da was herausgefunden:

erstmal der Fehler:

Zitat

Nicht aufgelöstes externes Symbol "_SDL_main

oder, wenn man die SDLmain.lib nicht mehr einbindet:

Zitat

Nicht aufgelöstes externes Symbol "_main


die Lösung:
das Ganze ist ein ist ein Problem mit Windows und liegt weder am Kompilier noch an der SDL. Durch folgenden Code direkt VOR der main Funktion sollte das ganze funktionieren:

C-/C++-Quelltext

1
2
3
#ifdef _WIN32
#undef main
#endif


Wenn das immer noch nicht klappt solltet ihr das hier versuchen:

C-/C++-Quelltext

1
2
3
4
#ifdef _WIN32
#pragma comment(lib, "SDL.lib")
#pragma comment(lib, "SDLmain.lib")
#endif

Werbeanzeige