Dev C++ - Schwerwiegendes SDL Problem



  • Hallo alle zusammen,
    derzeit habe ich mit einem schwerwiegendem SDL Problem in Dev C++ zu kämpfen.
    Ich habe bereits alle nötigen Pakete installieren lassen wie hier auf dem Screenshot zu sehen:

    http://img142.imageshack.us/img142/4103/pakete.png

    Erstelle ich ein neues Projekt und lasse den Test-Code laufen funktioniert alles wunderbar! Möchte ich nun ein anderes Projekt compilieren werde ich immer mit Linker-Fehlern überhäuft bezüglich SDL. Das ist mir bisher bei jedem SDL-Source-Code passiert, und ich habe wirklich viele getestet!

    Hier mal ein Konkretes Beispiel:
    Es geht um dieses Spiel welches auf dieser Seite im Original zu finden ist:
    http://ivo.danihelka.net/#ships
    Nun, überall wahr SDL wie folgt verlinkt:
    #include "SDL.h"
    #include "SDL_mixer.h"

    Das wusste ich und habe ich schnell erkannt, und damit ersetzt:
    #include <SDL/SDL.h>
    #include <SDL/SDL_mixer.h>

    In allen Dateien in denen es vorkam!
    Schließlich arbeiten die Vorlagen welche ja funktionieren genauso!
    Damit ihr euch nicht die Arbeit machen müsst habe ich es mal hochgeladen:
    http://www.file-upload.net/download-1813751/ships.rar.html

    Folgende Fehler-Ausgabe des Linkers ist anschließend beim compilieren zu sehen:

    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x7):main.cpp: undefined reference to Mix_CloseAudio' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0xc):main.cpp: undefined reference toSDL_Quit'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x20):main.cpp: undefined reference to CSystem::echo(char const*)' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x2c):main.cpp: undefined reference toSDL_Init'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x35):main.cpp: undefined reference to CSystem::problemSDL()' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x55):main.cpp: undefined reference toSDL_WM_SetCaption'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x61):main.cpp: undefined reference to CSystem::echo(char const*)' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x85):main.cpp: undefined reference toSDL_SetVideoMode'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x98):main.cpp: undefined reference to CSystem::problemSDL()' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0xa4):main.cpp: undefined reference toCSystem::echo(char const*)'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0xba):main.cpp: undefined reference to Mix_HaltMusic' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0xc7):main.cpp: undefined reference toMix_FreeMusic'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0xd3):main.cpp: undefined reference to CSystem::random(int)' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0xfe):main.cpp: undefined reference toMix_LoadMUS'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x111):main.cpp: undefined reference to Mix_LoadMUS' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x124):main.cpp: undefined reference toMix_LoadMUS'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x15c):main.cpp: undefined reference to Mix_PlayMusic' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x168):main.cpp: undefined reference toMix_HookMusicFinished'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x197):main.cpp: undefined reference to CSystem::echo(char const*)' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x1b8):main.cpp: undefined reference toMix_OpenAudio'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x1c8):main.cpp: undefined reference to CSystem::echo(char const*)' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x1cd):main.cpp: undefined reference toCSystem::problemSDL()'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x235):main.cpp: undefined reference to SDL\_WM\_ToggleFullScreen' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x251):main.cpp: undefined reference toSDL_ShowCursor'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x262):main.cpp: undefined reference to SDL_ShowCursor' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x291):main.cpp: undefined reference toCGame::addPlayer(COvladani_move const&, COvladani_fire const&)'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x2a9):main.cpp: undefined reference to Mix_VolumeMusic' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x2c0):main.cpp: undefined reference toMix_Volume'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x2d1):main.cpp: undefined reference to Mix_VolumeMusic' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x2e7):main.cpp: undefined reference toMix_Volume'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x2f5):main.cpp: undefined reference to Mix_VolumeMusic' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x30c):main.cpp: undefined reference toMix_Volume'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x31d):main.cpp: undefined reference to Mix_VolumeMusic' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x333):main.cpp: undefined reference toMix_Volume'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x3c1):main.cpp: undefined reference to CBg::CBg(char const*)' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x43e):main.cpp: undefined reference toCGame::CGame()'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x4bd):main.cpp: undefined reference to SDL_GetKeyState' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x4dd):main.cpp: undefined reference toCGame::addPlayer(COvladani_move const&, COvladani_fire const&)'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x4e2):main.cpp: undefined reference to SDL_GetTicks' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x50f):main.cpp: undefined reference toSDL_PollEvent'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x579):main.cpp: undefined reference to SDL_GetKeyState' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x59f):main.cpp: undefined reference toCGame::round(unsigned char*)'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x5b3):main.cpp: undefined reference to CBg::draw(SDL_Surface*)' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x5c9):main.cpp: undefined reference toCGame::draw(SDL_Surface*)'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x5d6):main.cpp: undefined reference to SDL_Flip' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x5ef):main.cpp: undefined reference toSDL_GetTicks'
    C:\Users\Teyhouse\AppData\Local\Temp/ccARdaaa.o(.text+0x67e):main.cpp: undefined reference to CGame::~CGame()' C:\\Users\\Teyhouse\\AppData\\Local\\Temp/ccARdaaa.o(.text+0x6b6):main.cpp: undefined reference toCBg::~CBg()'
    C:\Dev-Cpp\lib/libmingw32.a(main.o)(.text+0x106):main.c: undefined reference to `WinMain@16'
    collect2: ld returned 1 exit status

    Ausführung beendet

    Ich währe sehr froh wenn sofern hier jemand Rat weiß man sich an das Beispiel von da oben halten könnte, vielleicht ist es so leichter im Praktischen Herauszufinden wo mein Fehler liegt. Bin jedenfalls sehr froh über jeden der Rat weiß, ich hab mir nun die ganze Nacht damit zerschlagen und hab immer noch nichts hinbekommen 😞
    Eine Bitte noch: Ich währe dem / den jenigen der / die eine Lösung / Idee etc. hat / haben sehr verbunden über eine Möglichst Simple Verständliche Aussage da ich noch nicht so erfahren bin und Teilweise das Fach-Chinesisch nicht ganz verstehe 🙄

    Gute Nacht, in der Hoffnung auf Lösung,
    Gruß, scratsch



  • Das Fachchinesisch bedeutet, dass der Linker die Implementation von mehreren Funktionen, die du deklariert hast/aufrufen willst, nicht findet. Wahrscheinlich musst du noch eine oder mehrere libs linken. Sieh dir mal diese Anleitung an:

    http://de.wikibooks.org/wiki/SDL:_Installation

    EDIT: Und Dev-C++ solltest du nicht mehr verwenden, da es veraltet ist und nicht mehr weiterentwickelt wird. Eine Alternative wäre z.B. die kostenlose Express Edition von Visual Studio 2008.

    EDIT2: Wir haben doch einen schönen, neuen FAQ-Beitrag zu dem Thema:
    http://c-plusplus.net/forum/viewtopic-var-t-is-246875-and-highlight-is-.html


Anmelden zum Antworten