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

16.02.2010, 21:14

Linker Probleme mit SDL (MSVCRT.dll)

Moin moin,

wollte ein bisschen anfangen mit der SDL zu proggen. Hab auch alles so gemachtwie im Buch. Also unter Projekt -> Einstellungen-> Linker, sdl.lib und sdlmain.lib angegeben und unter Extras->Optionen die SDL Verzeichnisse eingetragen... also Include und Lib. Hab auch schon nachgesehen ob unter Projekt->Eigenschaften Codegenerierung Multitzhread geschaltet ist anstatt Singlethread.

Bekomm aba immer ärger beim Kompilieren:

msvcrt.lib (MSVCRT.dll) : error LNK2005: _exit bereits in LIBCMT.lib (crt0dat.obj) definiert

und das selbe mit _strncpy, _fgetc, _fclose, _setvbuf und __isctype

Und zustzlich noch diese fehlermeldung:

Standartbibliothek msvcrt.lib steht in Konflikt mit anderen Biliotheken /NODEFAULT:Bibliothek verwenden

error LNK2001 : Nichtaufgelöstes externes Symbol _SDL_main


wäre cool wenn ihr mir helfen könntet weiss nämlich echt nich was ich falsch gemacht habe.

Gruss

unsigned long

Treue Seele

Beiträge: 140

Wohnort: Herzogenrath

Beruf: Fachinformatiker Fachrichtung Anwendungsentwicklung

  • Private Nachricht senden

2

16.02.2010, 21:17

#undef main

3

16.02.2010, 21:31

Ja cool danke für die schnelle Antwort!

Hatte danach nur noch 2 Fehler, musste aber einfach nur noch vom Debug in den Release Modus schalten. Jetzt funktioniert es soweit hoff ich... Muss meine Datei jetzt ersma mit Code füllen.

Kannst du mir aba dennoch kurz erklären was das genau mit dem #undef main zutun hat? Liegt aba nicht daran das ich keine Parameterliste in main (...) habe oder?

unsigned long

Treue Seele

Beiträge: 140

Wohnort: Herzogenrath

Beruf: Fachinformatiker Fachrichtung Anwendungsentwicklung

  • Private Nachricht senden

4

16.02.2010, 21:47

Meines wissens steht das alles im Buch, wenn nicht ist es ein Schlechtes.

SDL definiert für DLLs eine eigene main-Funktion. Wenn du jedoch nun selbst ein Game machst, definieren viele Windows-Compiler eigene main-Funktionen. Daher kollidieren die. Darum musst du die erste Definition der main-Funktion aufheben via #undef.

5

16.02.2010, 21:54

Aso okay. Das reicht mir ja shcon als Antwort^^

Aber dann direkt zum nächsten Problem...wär ja auch zu schoen gewesen xD

Hab jetzt diesen Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include "SDL.h"

#undef main

using namespace std;

int main ()
{
   if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0 )
   {
      cout << "Fehler..." << endl;
      return 1;
   }

   return 0;
}


Und da bekomme ich jezt die Fehlermeldung:

LNK2001: Nichtaufgelöstes externes Symbol _SDL_Init

ist SDL_Init() nicht eine funktion aus SDL.h?

unsigned long

Treue Seele

Beiträge: 140

Wohnort: Herzogenrath

Beruf: Fachinformatiker Fachrichtung Anwendungsentwicklung

  • Private Nachricht senden

6

16.02.2010, 21:56

Ja, du hast aber nicht die Bibliothek gelinkt, sondern nur die Header eingebunden.

#pragma comment(lib, "SDL.lib")

7

16.02.2010, 22:01

Aber hab ich dafür nicht extra unter Projekt -> Einstllung - > Linker: sdl.lib und sdlmain.lib eingefügt?

EDIT: Danke aber schonal. Mit #pragma.. funktionierts..verstehe jetz nur nicht den Sinn von sdl.lib und sdlmain.lib^^

unsigned long

Treue Seele

Beiträge: 140

Wohnort: Herzogenrath

Beruf: Fachinformatiker Fachrichtung Anwendungsentwicklung

  • Private Nachricht senden

8

16.02.2010, 22:03

ist das selbe, aber hieß die nicht sdl_main?

9

16.02.2010, 22:04

Weiss nicht. Im Buch steht sdl.lib und sdlmain.lib...werds aba mal eben ausprobieren

10

16.02.2010, 22:06

Zitat von »"unsigned long"«

ist das selbe, aber hieß die nicht sdl_main?


Ja okay hab was übersehen... Hatte das sdl.lib und sdlmain.lib im Debug Modus Konfiguriert...Jetzt hab ichs Allgemein angelegt und jetzt klapptz auch ohne #pragma

Werbeanzeige