SDL_gfx funktioniert nicht



  • Hallo!

    Ich arbeite gerade an einem kleinen Spiel und habe mir SDL_gfx runtergeladen,
    um den Spieler zu drehen (mit "rotozoomSurface(...)").

    Leider findet der Compiler da einen Fehler:

    1>ZA.obj : error LNK2001: Nicht aufgelöstes externes Symbol "_rotozoomSurface".
    1>C:\Dokumente und Einstellungen\Administrator\eigene dateien\visual studio 2010\Projects\Zombie Attack\Release\Zombie Attack.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
    

    Der Fehler wird jedoch nur angezeigt, wenn ich die rotozoom-Funktion aufrufe:

    rotozoomSurface(avatar,rotate,zoom,SMOOTHING_ON);
    

    Die Variabeln "rotate" und "zoom" sind beide vom Typ double, wie es sein sollte.
    "avatar" ist die SDL_Surface *src.

    Ich habe folgendes gemacht, nachdem ich es runtergeladen habe:
    - SDL_rotozoom.h includiert
    - libgfxdll.dll in den Debug Ordner kopiert
    - libgfx.lib in den Debug Ordner kopiert

    Habe ich einen Schritt vergessen, da es nicht funktioniert?
    Ich finde den Fehler nicht ...

    Ich hoffe, dass mir jemand helfen kann!
    Danke 🙄



  • Der Pfad der Fehlermeldung deutet darauf hin, dass es sich um ein release-build handelt und nicht um ein debug-build.
    Die library ist für den linker wohl nicht verfügbar.



  • Ich hab das ganze jetzt mit Debug versucht, das Programm läuft jetzt, aber wenn
    ich Links oder Rechts drücke (rotozoom wird ausgeführt), bleibt das Programm
    stehen und ein Fenster kommt: "Zugriffsverletzung beim Lesen an Position 0x0...".

    Und folgende Warnings treten beim Kompilieren auf: 😞

    1>------ Neues Erstellen gestartet: Projekt: Zombie Attack, Konfiguration: Debug Win32 ------
    1>  ZA.cpp
    1>LINK : warning LNK4098: Standardbibliothek "MSVCRTD" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
    1>libgfx.lib(SDL_rotozoom.obj) : warning LNK4099: PDB "vc60.pdb" wurde nicht mit "libgfx.lib(SDL_rotozoom.obj)" oder an "C:\Dokumente und Einstellungen\Administrator\eigene dateien\visual studio 2010\Projects\Zombie Attack\Debug\vc60.pdb" gefunden; Objekt wird verknüpft, als ob keine Debuginformationen vorhanden wären.
    1>LINK : warning LNK4098: Standardbibliothek "MSVCRTD" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
    1>libgfx.lib(SDL_rotozoom.obj) : warning LNK4099: PDB "vc60.pdb" wurde nicht mit "libgfx.lib(SDL_rotozoom.obj)" oder an "C:\Dokumente und Einstellungen\Administrator\eigene dateien\visual studio 2010\Projects\Zombie Attack\Debug\vc60.pdb" gefunden; Objekt wird verknüpft, als ob keine Debuginformationen vorhanden wären.
    1>  Zombie Attack.vcxproj -> C:\Dokumente und Einstellungen\Administrator\eigene dateien\visual studio 2010\Projects\Zombie Attack\Debug\Zombie Attack.exe
    ========== Alles neu erstellen: 1 erfolgreich, Fehler bei 0, 0 übersprungen ==========
    

    Was kann ich dagegen machen?
    Habe ich etwas falsch gemacht? (beim Linken oder Includen von SDL_gfx)

    Ich hoffe mir kann jemand bei meinem Problem weiternhelfen 👍

    Danke! 🙄



  • Projekteigenschaften -> Linker -> Ignore Specific Library -> MSCRTD eintragen.
    So wirst du die Warnung los. Desweiteren muss die .pdb, die beim kompilieren von SDL erstellt wurde, auch im Verzeichnis sein, wo die .lib und .exp ist.
    Aber hast du die selber kompiliert? Ich hoffe mal nicht dass die noch vom VC 6 ist :D.
    Die Zugriffverletzung kann auch von was anderem kommen. Zeig mal Code von der Stelle und was sagt der Debugger?


Anmelden zum Antworten