Moin zusammen,
ich versuche mich zurzeit an SDL2 über C++ und hänge an einem kleinen Problem, welches ich bis dato nicht lösen konnte. Aktuell habe ich ein funktionierendes Programm geschrieben, welches mir ein weißes Fenster zeigt. Jetzt möchte ich meine erste PNG-Datei hinzufügen und zwar mittels IMG_Load(), allerdings scheint SDL2_image nicht richtig eingebunden zu sein.
In der Headerdatei steht folgendes:
#ifndef Game_hpp
#define Game_hpp
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include <iostream>
class Game {
public:
Game();
~Game();
void init(const char* title, int xpos, int ypos, int width, int height, bool fullscreen);
void handleEvents();
void update();
void render();
void clean();
bool running() { return isRunning; }
private:
int cnt;
bool isRunning;
SDL_Window *window;
SDL_Renderer *renderer;
};
#endif
In meiner Game.cpp an entsprechender Stelle:
SDL_Surface* tmpSurface = IMG_Load("assets/player.png");
playerTex = SDL_CreateTextureFromSurface(renderer, tmpSurface);
SDL_FreeSurface(tmpSurface);
sdl2 2.0.8-8 und sdl2_image 2.0.3-1 sind installiert. Ich kompiliere mit diesem Befehl:
g++ -Wall -o game main.cpp Game.cpp -lSDL2 -lSDL2_image
Aber immer erhalte ich den Fehler, dass IMG_Load in diesem Gültigkeitsbereich nicht definiert wurde.
Wie gesagt, bevor ich die drei angegebenen Zeilen Code in meiner Game.cpp hinzugefügt habe und nur mit -lSDL2 kompiliert habe, hat es wunderbar funktioniert. Mit SDL2_image dann nicht mehr, also vermute ich, dass es mit der Bibliothek irgendwelche Schwierigkeiten gibt.
Hoffe, ihr könnt mir weiter helfen!
Ich bedanke mich schon mal im Voraus für eure Hilfe!
Beste Grüße
Marlhin