Problem mit SDL_image auf Linux



  • ich hab gerade den sourcecode von SDL_image über eine RPM-Datei installiert, und das Paket wird auch in yast angezeigt, allerdings wenn ich in einem Projekt #include <SDL_image.h> schreibe, dann sagt der paket wurde nicht gefunden. Hab ich da jetzt was völlig falsch gemacht?



  • sdl-config --cflags gibt dir aus was du beim compilieren bei als c(pp)flags mitgeben sollst.
    und bei ldflags nicht die libs vergessen
    sdl-config --libs sagt dir was das is, zusaetzlich noch -lSDL_image dazu



  • ich weiß jetzt nicht ganz genau, was du du meinst, aber könntest du das bite ewas ausführlicher erklären, oder nen link geben, wo die SDL-config erklärt wird. Ich bin leider noch nich vollkommen vertraut mit Linux.



  • sdl-config befehl in die shell/terminal/konsole eingeben

    schaut ca so aus:

    bash-3.1$ sdl-config --cflags
    -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT

    bash-3.1$ sdl-config --libs
    -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread

    den output, oder direkt den befehl, in deiner ide an der richtigen stelle eintragen bzw im makefile angeben
    (mit was programmierst du?)

    allgemeines zu sdl-config und mehr findest du natuelich auf der libsdl page, einiges schon in den faqs/linux

    http://www.libsdl.org/faq.php?action=listentries&category=3

    insbesondere da
    http://www.libsdl.org/faq.php?action=listentries&category=3#21



  • ich Programmiere C++ in KDevelop und ich weiss immernoch nicht genau was ich jetzt tun soll. Ich hab die beiden Befehle schon in der Konsole eingegeben, das ändert aber immer noch nichts daran, dass der die Header Datei nicht findet.



  • projekt
    projekt einstellungen
    einstellungen fuer configure

    schalter fuer cppp flags das da
    -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
    eintragen/dazuschreiben

    linker schalter das da
    -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread
    eintragen/dazuschreiben

    das sollts sein
    hth
    trotzdem doku lesen

    was ma jetzt grad aufgeht, du hast oben gschreiben ds du die src rpms installiert hast

    du brauchst sdl sdl-devel sdl_image sdl_imgad-devel usw damit die header bei dir an der richtigen stelle sind, src rpms nutzen dir da erstmal nix.



  • ich frag immer nach dem warum und wiso.

    Was sind überhaupt cppflags?
    sollte das nicht auch automatisch klappen?

    wiso reicht ein src rpm nicht aus?
    wenn der den Sourcecode an die Standart stelle installiert, wo alle includedateien sind, dann muss der das doch finden und ich muss es jeder Zeit darauf zugreifen können?

    Ich hasse es dinge zu tun die ich nicht verstehe, oder für mich keinen sinn ergeben, und eine Passende Doku hab ich auch noch nicht darüber gefunden, wie man Bibilotheken installirt, und richtig anwendet, dass steht in keinem meiner C++ bücher, die kennen nur Microsoft Windows und bereits vorhandenes.

    Edit und warum werden hier ganz normale Wörter zensiert?



  • ich hab immernoch folgenden Fehler, und den gleich doppelt:

    /home/Krux/Documents/C++/sdltest/src/Tux.cpp:27: undefined reference to IMG_Load' /home/Krux/Documents/C++/sdltest/src/Tux.cpp:27: undefined reference toIMG_Load'



  • ldflags um -lSDL_image erweitern damit deina app weis das sie mit sdl_image linken muss



  • meine ldflags sehe zz so aus: "-L/usr/lib -lSDL_image -lSDL" und beim Kompilieren kommt folgender Fehler: "libtool: link: cannot find the library `/usr/local/lib/libSDL.la'"



  • aussehn sollts so wie der output von sdl-config --libs mit sdl_image dauz
    also zb so
    -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lSDL_image -lpthread

    wenn linker meint er findet eine datei nicht, nachsehn ob die ueberhpt vorhanden is, dort wo ers vermutet oder wo anders

    is alles korrekt installiert und die datei nicht da dann distribuionsspezifisches probelm (suse?)



  • ich hab zur zeit ein Libtool fehler, libtool konnte eine Datei nicht ffinden, weil Libtool zu blöd ist und im Falschen Ordner Sucht, wie Stelle ich das um, so dass er unter usr/lib und nicht unter usr/local/lib sucht?

    Meine distribution ist Suse 10.1


Anmelden zum Antworten