Tutorial SDL2 Installation: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „In diesem Tutorial wird dir gezeigt, wie du deine Entwicklungsumgebung so einrichtest, dass du SDL2-Programme entwickeln kannst. Dies ist Voraussetzung für …“)
(kein Unterschied)

Version vom 4. April 2014, 21:00 Uhr

In diesem Tutorial wird dir gezeigt, wie du deine Entwicklungsumgebung so einrichtest, dass du SDL2-Programme entwickeln kannst. Dies ist Voraussetzung für Tutorial OpenGL3 Lektion 1. Auch wenn das Prinzip überall gleich ist, hängen die Details von der jeweils verwendeten Programmiersprache, von der Entwicklungsumgebung und vom Betriebssystem ab. Daher ist der Rest des Artikels nach Programmiersprache und IDE aufgeteilt.

Code::Blocks (C++) unter Windows

SDL2 herunterladen

Das erste, was wir benötigen, ist die Library SDL2 selbst. Diese lädst du dir hier herunter. Da wir Entwickler sind, brauchen wir nur, was im Abschnitt "Development Libraries" angeboten wird. Wer Code::Blocks einsetzt, verwendet in der Regel den MinGW-Compiler. Dies ist dann der Fall, wenn man den Compiler gleichzeitig mit Code::Blocks installiert hat. Ist dies der Fall, speichert man als die Datei "SDL2-devel-2.0.3-mingw.tar.gz" auf dem Computer. Die Versionsnummer kann sich natürlich schon geändert haben, wenn du dieses Tutorial liest. Solange sie mit 2.0 beginnt, sollte alles so funktionieren, wie hier beschrieben.

Archiv entpacken

Die heruntergeladene Datei ist ein Archiv, also eine Datei in der weitere Dateien und Ordner komprimiert gespeichert sind. Schließlich wäre es mühsam, 100 Dateien einzeln herunterzuladen, nicht wahr? ;) Um das Archiv zu entpacken, benötigst du ein Archivprogramm auf deinem Computer. Auf den meisten Computern ist das ohnehin installiert. Falls dies bei dir nicht der Fall ist, kann ich 7-zip empfehlen, welches kostenlos (sogar open-source) ist und sehr viele Formate lesen und schreiben kann - insbesondere auch das Format tar.gz. Wenn du das heruntergeladene Archiv entpackt hast, befindet sich auf deiner Festplatte ein Ordner "SDL2-2.0.3" (oder eine andere Versionsnummer).

Die richtigen Dateien am richtigen Ort

Damit der Compiler die heruntergeladenen Code-Dateien auch findet, müssen wir ihm entweder sagen, wo sich diese befinden. Ich rate davon ab, das lokale Downloadverzeichnis (wo sich die Dateien bei dir vermutlich jetzt befinden) als Include-Pfad zu verwenden. Suche dir ein Verzeichnis auf der Festplatte aus, der deinem Ordnungssystem entspricht - auf deinem Computer herrscht doch Ordnung, oder?! ;)
Der Einfachheit halber werde ich im Folgenden einfach annehmen, dass das Verzeichnis C:\include heißt. Darin erstellst du nun einen Ordner namens "SDL2". Nun wechselst du in das von dir entpackte Verzeichnis nach SDL2-2.0.3\include und kopierst alle darin enthaltenen Dateien nach C:\include.
Außerdem brauchen wir noch ein zweites Verzeichnis für Linker-Dateien. Dieses nenne ich hier einfach mal C:\lib. Dorthin werden alle .a-Dateien kopiert, die sich im Ordner SDL2-2.0.3\i686-w64-mingw32\lib (wenn dein Programm 32bit ist) bzw. SDL2-2.0.3\x86_64-w64-mingw32\lib (falls du ein 64bit-Programm schreibst) befinden. Falls du unsicher bist, brauchst du wahrschenlich die 32bit-Version - auch wenn dein Betriebssystem 64bittig ist!

Projekteinstellungen

Falls noch nicht geschehen, startest du nun Code::Blocks und erstellst ein neues Projekt (Konsolenanwendung, "Hello World"-Beispiel). Um sicherzugehen, dass alles andere funktioniert, kompilierst du deine Anwendung erstmal und führst sie aus.
Ist dies erfolgreich, klickst du im Menü auf "Project" -> "Build options..." und wählst in dem sich öffnenden Fenster den Reiter "Search directories". Dieser enthält wiederum zwei Unterreiter "Compiler" und "Linker". Beim Unterreiter "Compiler" klickst du auf "Add" und wählst C:\include aus. Auf die gleiche Weise wählst du beim Unterreiter "Linker" das Verzeichnis C:\lib aus. Danach wechselst du noch zum Reiter "Linker settings" (neben "Search directories") und fügst folgende Zeile in die Box "other linker options" ein:

-lmingw32 -lSDL2main -lSDL2 -lopengl32

Anschließend natürlich noch mit einem Klick auf OK bestätigen.

Folgender Code sollte nun erfolgreich gebaut (kompiliert & gelinkt) werden können:

#include <iostream>
#include <SDL2/SDL.h>

int main(int argc, char* args[])
{
  if(SDL_Init(SDL_INIT_EVERYTHING) != 0)
    std::cout << "SDL_Init failed!\n";
  else
    std::cout << "SDL_Init was successful!\n";

  SDL_Quit();
  return 0;
}

DLL-Fehlermeldung

Bevor du jetzt "Fehlermeldung!" schreist: Ich sagte bauen, nicht ausführen ;) Die Ausführung funktioniert in der Tat noch nicht, da Windows bei der Ausführung des Programms vergeblich nach der Datei "SDL2.dll" sucht. Diese musst du erst noch in das Verzeichnis kopieren, in dem sich die exe-Datei deines Programms befindet. Du findest sie im Ordner SDL2-2.0.3\lib\x86 (32bit) bzw. in SDL2-2.0.3\lib\x64 (64bit).