Du bist hier: Startseite > Entwicklung (C/C++) > SFML und C++ > Installation unter Linux

Installation unter Linux

SFML Framework in Linux einbinden

Die hier beschriebene Installation vom SFML Framework wurde unter Kubuntu 16.04 mit SFML 2.4.2 getestet!

Damit wir das SFML Framework nutzen können, müssen wir erstmal alle benötigten Packete installieren:

sudo apt-get install libpthread-stubs0-dev libgl1-mesa-dev libx11-dev libxrandr-dev libfreetype6-dev libglew1.5-dev libjpeg8-dev libsndfile1-dev libopenal-dev -y

Das Framework kann zwar in den Repositories gefunden werden, ist aber meistens eine alte Version. Daher laden wir es hier in der aktuellen Version runter und bauen es selber ins System ein. Nach dem Download wechseln wir in das Download Verzeichnis und Entpacken das Archiv mit:

cd ~/Downloads
tar -xvzf SFML-*tar.gz

Im Download Verzeichnis sollte jetzt ein neuer Ordner SFML-* vorhanden sein. Diesen betretten wir mit

cd SFML-*

In diesem Ordner finden wir 3 weitere Ordner "include", "lib" und "share". Für diese Ordner wechseln wir nun rekursiv die Besitzrechte auf den User root mit der Gruppe root

sudo chown -R root:root include/ lib/ share/

Nun setzen wir die Rechte auf rwxr-xr-x . Dies entspricht chmod 0755. Somit darf jeder die Daten vom Framework lesen und ausführen aber nur root verändern.

sudo chmod -R 0755 include/ lib/ share/

Nun verschieben wir diese 3 Ordner nach /usr/. Damit alle Benutzer des Systems auf das Framework zugreifen können.

sudo cp -avR include/SFML /usr/include/
sudo cp -avR lib/* /usr/lib/
sudo cp -avR share/* /usr/share/

Denn Entpackten Ordner SFML-* im Downloads/ Ordner sowie die SFML-*.tar.gz Datei kann jetzt gelöscht werden und wird nicht mehr benötigt!

SFML Framework in Code::Blocks integrieren

Damit unser SFML Framework in der Entwicklungsumgebung genutzt werden kann, muss in der IDE noch etwas umgestellt werden. Nach dem Start von Code::Blocks (hier Version 16.01) klicken wir auf "Create a new Project" und im darauf folgendem Fenster wählen wir "Console application" und bestätigen mit OK.

Als Projekt Sprache wählen wir "C++" und klicken auf Next.

Im nächsten Fenster geben wir ais Project title "sfmlDefaultSetup" und in Folder to create project in: "/home/$BENUTZERNAME$/SFML Projekte/" ein und klicken auf Next und Finish. $BENUTZERNAME$ sollte hierbei mit dem angemeldetem User ausgetauscht werden! Um denn aktuellen Benutzer zu ermitteln, kann in der Konsole whoami eingegeben werden.

Projekt Properties einstellen


Mit linker Maustaste im Menü denn Reiter Project -> Properties ... aufrufen und zur Registerkarte "Build targets" wechseln. Jeweils unter Debug sowie Release den Wert für Type in der Auswahlbox von "Console application" zu "GUI application" ändern und auf OK klicken.


Compiler und Linker einstellen


Im Menü auf denn Reiter Project -> Build options ... klicken und die Registerkarte "#defines" anklicken. Im neuen Fenster in die Textbox SFML_STATIC einfügen und danach auf die Registerkarte Search directories klicken.
Im bereits ausgewähltem Tab Compiler klicken wir unten auf Add und geben in das Textfeld /usr/include ein. Danach auf OK klicken und auf denn Tab Linker klicken und Add auswählen. In die Textbox /usr/lib eintragen und mit OK schliessen.


Link Libraries für Debug setzten


Im gleichen Fenster rechts auf Debug klicken und denn Tab Linker settings wählen. Hier müssen die Bibliotheken in genauer Reihenfolge eingetragen werden. Um einen Bibliothek hinzuzufügen, vorher auf Add klicken und jede Zeile einzelnd eingeben:

sfml-graphics-d
sfml-window-d
sfml-system-d
sfml-audio-d
sfml-network-d


Link Libraries für Release setzen


Im gleichen Fenster rechts auf Release klicken und denn Tab Linker settings wählen. Hier müssen die Bibliotheken in genauer Reihenfolge eingetragen werden. Um einen Bibliothek hinzuzufügen, vorher auf Add klicken und jede Zeile einzelnd eingeben:

sfml-graphics
sfml-window
sfml-system
sfml-audio
sfml-network


SFML Framework testen

Datei:  main.cpp
  1. #include <SFML/Graphics.hpp>
  2.  
  3. int main()
  4. {
  5. // create the window
  6. sf::RenderWindow window(sf::VideoMode(800, 600), "My window");
  7.  
  8. // run the program as long as the window is open
  9. while (window.isOpen())
  10. {
  11. // check all the window's events that were triggered since the last iteration of the loop
  12. sf::Event event;
  13. while (window.pollEvent(event))
  14. {
  15. // "close requested" event: we close the window
  16. if (event.type == sf::Event::Closed)
  17. window.close();
  18. }
  19.  
  20. // clear the window with black color
  21. window.clear(sf::Color::Black);
  22.  
  23. // draw everything here...
  24. // window.draw(...);
  25.  
  26. // end the current frame
  27. window.display();
  28. }
  29.  
  30. return 0;
  31. }