[gelöst] Linkerproblem mit SDL_mixer unter Code::Blocks



  • Hi,
    ich versuche gerade ein unter Linux geschriebenes Programm unter Windows zu kompilieren und benutze dafür die Code::Blocks IDE.

    Die Verzeichnisse für SDL, SDL_mixer usw. hab ich alle passend eingestellt. Allerdings passt irgendwas mit den Linkereinstellungen noch nicht.

    Ich muss zugeben, ich habe nicht wirklich Ahnung, mit was ich mein Projekt da alles verlinke. Der größte Teil meiner Verlinkungen sind die von Code::Blocks für SDL und OpenGL Projekte standardmäßig angelegten. Soweit ich weiß, ist auch die Reihenfolge entscheidend, aber ich konnte bisher noch keinen Erfolg erzielen. Eventuell heißen die Linker für SDL_mixer und SDL_net auch ganz anders, ich habe keine Ahnung, wo ich herausfinde, auf was ich verknüpfen muss, um die beiden zu verlinken.

    So, hier nun erstmal die Fehlermeldung:

    ld.exe||cannot find -lSDLmixer|
    

    Und hier meine eingestellten Linker, in der eingestellten Reihenfolge:

    mingw32
    SDLmain
    SDL.dll
    SDL_mixer.dll
    SDL_net.dll
    user32
    gdi32
    winmm
    dxguid
    opengl32
    glut32

    Weiß jemand speziell zu diesem Fall Hilfe und eventuell auch noch, wie ich das allgemein unter Windows machen muss?

    Schonmal vielen Dank für die Hilfe! 😉



  • Doofe Frage: Ist denn die library von SDL_Mixer vorhanden? In dem Fall müsste das die libSDL_Mixer.dll.a sein.



  • Sie ist vorhanden, aber nur als .dll. Habe den Fehler nun zufällig gefunden. Ich darf es gar nicht als Linker einstellen, dann funktioniert es und wird trotzdem korrekt verlinkt. Warum das so ist, übersteigt meine Logik, aber Hauptsache ist, es funktioniert^^.

    Aber danke für die Antwort.



  • Little Programmer schrieb:

    Sie ist vorhanden, aber nur als .dll. Habe den Fehler nun zufällig gefunden. Ich darf es gar nicht als Linker einstellen, dann funktioniert es und wird trotzdem korrekt verlinkt. Warum das so ist, übersteigt meine Logik, aber Hauptsache ist, es funktioniert^^.

    Aber danke für die Antwort.

    Es ist einfach nur das dein du den Linker falsch eingetippt hast! Der Compiler sucht nach den Bibliotheken von -lSDLmixer .... der richtige Bibliotheksname ist aber -lSDL_mixer ... den Unterstrich nicht vergessen!


Anmelden zum Antworten