[C++ Tut] SFML 2.1 in euer Projekt einbinden

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [C++ Tut] SFML 2.1 in euer Projekt einbinden

      Vorwort
      Herzlich Willkommen zu meinem kleinen Tutorial.
      Heute möchte ich euch zeigen, wie ihr SFML in euer C++-Projekt einbinden könnt.
      Ich benutze für dieses Tutorial Visual Studio 2013 sowie SFML 2.1. Unter Umständen kann es in älteren/neueren Versionen von Visual Studio und/oder SFML zu Abweichungen kommen.

      Wenn ihr eine englische Version von Visual Studio nutzt und nicht alles übersetzen wollt, empfehle ich euch das offizielle SFML-Tutorial. Dieses könnt ihr hier finden: sfml-dev.org/tutorials/2.1/start-vc.php


      Was ist SFML?
      Die Simple and Fast Multimedia Library, kurz SFML, besteht aus 5 Modulen.
      Die Module können einzeln benutzt werden, falls man den Rest nicht braucht.
      Mit den 5 Modulen (System, Window, Graphics, Audio und Network) kann man Spiele und Multimedia-Anwendungen erstellen.
      Momentan unterstützt SFML Windows, Linux und Mac OS X. In Zukunft sollen auch Android und iOS unterstützt werden.
      Laurent Gomila, der Entwickler von SFML, hat nicht nur eine offizielle Bibliothek für C++, sondern auch für C und .Net-Sprachen.
      Dank der aktiven Community gibt es aber noch viele weitere Ableger, wie z.B. für Java, Python und Ruby.



      Vorbereitung
      Als erstes benötigen wir natürlich die Bibliothek, welche ihr hier finden könnt: sfml-dev.org/download/sfml/2.1/
      Ihr solltet beim Download darauf achten, dass ihr die richtige Version nehmt.
      Da ich mit C++11 arbeite und dies ab Visual Studio 2012/2013 unterstützt wird, benötige ich natürlich auch den entsprechenden Download "Visual C++ 11 (2012)".
      Solltet ihr keine geeigneten Gründe für die 64 Bit-Version haben, solltet ihr immer zur 32 Bit-Version greifen.

      Nun sucht ihr euch einen geeigneten Platz auf eurer Festplatte, wo ihr die Dateien auch später noch wieder finden könnt und entpackt die .zip-Datei dort.
      Bei mir sieht der Pfad so aus: E:\C++ Projekte\SFML-2.1

      Nun startet ihr Visual Studio und erstellt ein neues Visual C++-Projekt.
      Ihr wählt die Win32-Konsolenanwendung und einen Namen und klickt anschließend im Win32-Anwendungs-Assistent auf Weiter und macht einen Haken bei "Leeres Projekt" rein.
      Nun fügt ihr dem Projekt im Projektmappen-Explorer unter "Quelldateien" noch eine main.cpp hinzu und wir können endlich anfangen SFML einzubinden.


      SFML einbinden
      Nun geht ihr oben auf "Projekt" und dann auf den untersten Eintrag, welcher PROJEKTNAME-Eigenschaften heißen sollte.
      Nun klappt ihr "Konfigurationseigenschaften" aus und markiert diesen Eintrag und wählt anschließend im darübergelegenen Konfigurations-Feld "Alle Konfigurationen" aus.

      Nun geht ihr in der Liste auf den Punkt "C/C++" und dann in den darunterliegenden Punkt "Allgemein".
      Unter "Zusätzliche Includeverzeichnisse" wählt ihr nun den Ordner "include" in eurem SFML-Ordner aus.
      Bei mir wäre das: E:\C++ Projekte\SFML-2.1\include
      Jetzt klappt ihr den Punkt "Linker" aus und klickt wieder auf "Allgemein".
      Unter "Zusätzliche Bibliotheksverzeichnisse" wählt ihr nun den Ordner "lib" in eurem SFML-Ordner.
      Der Pfad sieht bei mir so aus: E:\C++ Projekte\SFML-2.1\lib

      Klickt nun auf den Button "Übernehmen" und wählt oben unter "Konfiguration" den Punkt "Debug" aus.

      Wählt nun den Punkt "Eingabe", welchen ihr unter "Linker" finden könnt.
      Unter dem Eintrag "Zusätzliche Abhängigkeiten" fügt ihr nun folgende Einträge hinzu:
      sfml-audio-d.lib
      sfml-graphics-d.lib
      sfml-network-d.lib
      sfml-system-d.lib
      sfml-window-d.lib

      Ihr drückt nun wieder auf Übernehmen, wechselt unter "Konfiguration" auf "Release" und tragt unter "Zusätzliche Abhängigkeiten" folgendes ein:
      sfml-audio.lib
      sfml-graphics.lib
      sfml-network.lib
      sfml-system.lib
      sfml-window.lib

      Damit haben wir SFML nun erfolgreich in unser Projekt eingebunden.


      .dll-Dateien kopieren und testen
      Nun wollen wir das ganze natürlich auch testen.
      Fügt folgenden Testcode in eure main.cpp ein:

      Quellcode

      1. #include <SFML/Graphics.hpp>
      2. int main()
      3. {
      4. sf::RenderWindow window(sf::VideoMode(640, 480), "SFML Tutorial");
      5. while (window.isOpen())
      6. {
      7. sf::Event event;
      8. while (window.pollEvent(event))
      9. {
      10. if (event.type == sf::Event::Closed)
      11. window.close();
      12. }
      13. window.clear();
      14. window.display();
      15. }
      16. return 0;
      17. }
      Alles anzeigen


      Nun kompiliert euer Projekt im Debug- oder Release-Modus, es sollte kein Fehler auftauchen, außer ihr versucht die kompilierte Anwendung zu starten.
      Damit ihr eure Anwendung starten könnt, müsst ihr noch die benötigten .dll-Dateien in euer Debug- und Release-Verzeichnis kopieren.
      Ihr geht in eurem SFML-Verzeichnis in den Ordner "bin" (Mein Pfad: E:\C++ Projekte\SFML-2.1\bin) und kopiert alle Dateien daraus in folgende Ordner:
      <Euer Pfad zu euren Projekten>\<Projektname>\Debug
      sowie
      <Euer Pfad zu euren Projekten>\<Projektname>\Release

      Bei mir sehen die Pfade so aus:
      E:\C++ Projekte\Tutorials\Debug
      E:\C++ Projekte\Tutorials\Release

      Sollte einer der beiden Ordner noch nicht existieren, kompiliert euer Projekt in dem jeweiligen Modus oder erstellt den Ordner per Hand.

      Wenn ihr nun die Anwendung startet, sollte euch ein schwarzes Fenster mit dem Titel "SFML Tutorial" begrüßen.


      Das war's auch schon mit meinem Tutorial. :)
      Sobald ich Lust und Zeit habe, folgen weitere Tutorials über SFML.
      Wenn ihr Fragen habt, dann fragt.

      ~Kaev
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )