Install SFML last version
Bonjour:
r�f�rence https://www.sfml-dev.org/index-fr.php
fa�tes un petit tour avant pour vous rendre compte cela vos le d�tour ;)
voici comment installer SFML
Simple and Fast Multimedia Library / SFML est multi-media / SFML est multi-plateforme / SFML est multi-langage
particularit� pour GCC Linux: Debian / Ubuntu et ses d�riv�s. pour les autres distribution les m�mes packets .
pourquoi cette installation , les packets (SFML) ne sont pas au dernier niveau. (d�veloppement tr�s actif )
_____________________________________________________________________________________________
document permettant d'installer SFML version stable sans dependance (catastrophique)
un document install_manifest.txt y est g�n�r� voir la fin page.
pr�alable avoir installer GCC
ouvrir votre session administrateur travail sous sudo (attention)
ouvrir votre terminal
Code:
apt list --installed | grep -i libsfml*
afin de ne pas avoir de conflit par exemple si vous avez installer TGUI depuis un depot ou SFML en apt / depot
veuillez les d�sinstaller puis reprendre la proc�dure depuis le d�but
pour TGUI je vais vous faire la proc�dure comme celle de SFML, cela vous permettra de vous lib�r� de toutes entraves de d�pendances et de profit� du d�veloppement tr�s actif.
==================================================
les d�pendances tr�s l�g�res: Mais obligatoires
Normalement font partis du system
Code:
apt list --installed | grep -i libfreetype6-dev
Code:
apt list --installed | grep -i libxrandr-dev
Code:
apt list --installed | grep -i libudev-dev
Code:
apt list --installed | grep -i libogg-dev
vous ne devriez avoir que cela � installer --->
Code:
sudo apt install libflac-dev libvorbis-dev libopenal-dev
==================================================
pour faire la documentation
Code:
sudo apt install doxygen doxygen-gui doxygen-doc
(chose que vous devriez avoir dans vos outils)
pour compiler et installer SFML cela vous pr�pare le makfile (aux petits oignons)
Code:
sudo apt-get -y install cmake
(bien souvent r�clamer pour des projets pr�par�s pour des installations multiplateformes)
Code:
sudo apt-get -y install cmake-qt-gui
==================================================
SFML
r�cup�ration de la derni�re version stable
https://www.sfml-dev.org/download/sf...1/index-fr.php (2.5.1 par exemple date du 05-2019 prendre to OS le source )
ouvrir un terminal ex�cuter les commandes
(une fen�tre appara�t )
1)
--> votre r�pertoire ou vous extrait votre zip
2)
--> $home/sflm
pour Linux tout est d�j� pr�t
3)
choisir ->normalement vous ne devriez pas avoir de beug si vous avez d�j� installer GCC etc...
ne pas choisir doc car vous pouvez avoir nettement mieux (on verra cela plus bas)
4)
puis -> fermer le programme
==================================================
on pr�pare l�environnement (ps juste pour la compilation et l'installation)
ex�cuter les commandes toujours dans le terminal
Code:
export PATH=$PATH:/home/votre_User/SFML-2.5.1/
Code:
export PATH=$PATH:/home/votre_User/SFML/
-----------------------------------------------
compilation SFML
a) normalement il fini par "done" sinon ???? corriger g�n�ralement c'est parce qu'il vous manque un module .... etc.... puis refaire make
installation automatique :
b) g�n�re le fichier install_manifest.txt
qui comporte l'ensemble des fichiers et leurs chemins
comme �a il est tr�s simple de les enlev�s . (cela reste propre)
maintenant il faut dire au system comment lier tout cela
------------------------------------------------------------------------------------------------------------------------------------------
ldconfig cr�e, mises � jour et supprime les liens n�cessaires et le cache (pour une utilisation par l'�diteur de lien, ld.so)
les plus r�centes biblioth�ques partag�es trouv�es dans les r�pertoires sp�cifi�s sur la ligne de commande,
dans le fichier / etc / ld. so.conf, et dans les r�pertoires de confiance (/ usr / lib et / lib).
Donc, en supposant que libsfml....so est situ� dans /usr/local/lib/ (si vous en �tes ici pas de probl�me)
cr�er un simple fichier sfml.conf comme ceci
Code:
sudo echo "/usr/local/lib" > sfml.conf
on copy
Code:
sudo cp sfml.conf /etc/ld.so.conf.d
Ex�cuter ldconfig afin de configurer les liaisons run-temps l' �diteur de liens.
====================================================================
maintenant on passe dans l'environnement d�veloppeur
copier dans .bachrc si il n'existe pas on l'ouvre et si cela n'ai pas d�j� fait
Citation:
# Chemin MODULE* ex:SFML or FOX .... C++
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_RUN_PATH=$LD_RUN_PATH:/usr/local/lib
enregistrez
====================================================================
exemple makefile
projet que vous trouvrez sur la page sfml
ouvrir un fichier makefile �crire ci-dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| # nom de l'exécutable :
PROJET= window
# Adresse des sources, des objets et des includes :
SRCDIR = $(CURDIR)/src/
OBJDIR = $(CURDIR)/obj/
BINDIR = $(CURDIR)/bin/
INCLUDES =\
-I/usr/local/include/SFML/
INCLIB =
OBJCPP = $(OBJDIR)$(PROJET).o
RESULT= $(BINDIR)$(PROJET)
# choix du compilateur :
CXX = g++
# -------------------------------------------------------------------
# production
# -------------------------------------------------------------------
ifeq ($(PROD), true)
CPPFLAGS= -std=c++17 -Wall -fexceptions -pedantic-errors -Wunused-variable -Wextra -Wparentheses -Waddress \
-ftree-coalesce-vars -fstack-clash-protection -fstack-protector-all \
-Wsign-compare -fpermissive -fstrict-overflow \
`pkg-config --cflags sfml-all`
LDFLAGS= -pthread `pkg-config sfml-all --libs`
OPTIMIZE = -fexpensive-optimizations -Os -s
# -------------------------------------------------------------------
# debug
# -------------------------------------------------------------------
else
CPPFLAGS= -O3 -ggdb -g3 -DDEBUG \
-std=c++17 -Wall -fexceptions -Wextra -pedantic-errors -Wunused-variable -Wparentheses -Waddress \
-Wsign-compare -fpermissive \
-ftree-coalesce-vars -fstrict-overflow \
`pkg-config --cflags sfml-all`
LDFLAGS = -no-pie -pthread `pkg-config sfml-all --libs`
OPTIMIZE =
endif
# -------------------------------------------------------------------
# compilation
# -------------------------------------------------------------------
# compilation obj : ex #@echo "$(OBJCPP)"
# regle edition de liens
all : $(OBJCPP)
# regle de compilation des sources objet
$(CXX) $(OBJCPP) -o $(RESULT) $(OPTIMIZE) $(LDFLAGS) $(INCLIB)
ifeq ($(PROD), true)
du -sh $(RESULT)
rm -rf $(OBJDIR)$(PROJET).o
else
du -sh $(RESULT)
endif
$(OBJDIR)%.o: $(SRCDIR)%.cpp
$(CXX) $(CPPFLAGS) $(INCLUDES) -o $@ -c $<
# pour effacer tous les objets :
clean :
rm -rf $(OBJDIR)$(PROJET).o
rm -rf $(RESULT) |
============================================================================
documentation tr�s importante solution car il faut apprendre ........
doxywizard
use
------------------------------------------------------
WIZARD
PROJECT
name : SFML
source directory : votre source d�zip�
scan r�cursif
destination directory : $HOME/SFML
MODE
all entities
OUTPUT
only HTML
whit navigation panel
------------------------------------------------------
EXPERT
exemple
INPUT = /home/...../SFML-2.5.1/src \
/home/....../SFML-2.5.1/include
FILE_PATTERNS = *.c \
*.cc \
*.cxx \
*.cpp \
*.c++ \
*.java \
*.ii \
*.ixx \
*.ipp \
*.i++ \
*.inl \
*.idl \
*.ddl \
*.odl \
*.h \
*.hh \
*.hxx \
*.hpp \
*.h++ \
*.cs \
*.d \
*.php \
*.php4 \
*.php5 \
*.phtml \
*.inc \
*.m \
*.markdown \
*.md \
*.mm \
*.dox \
*.py \
*.pyw \
*.f90 \
*.f95 \
*.f03 \
*.f08 \
*.f \
*.for \
*.tcl \
*.vhd \
*.vhdl \
*.ucf \
*.qsf
recursive
===========================
run
affin� si plus
============================================================================
UNISTALL
============================================================================
merci � stackoverflow.com
https://stackoverflow.com/questions/...-library-in-li
procedure uninstall sans risque
toujours dans le terminal (on sait ce que l'on fait ;) )
M�thode (install_manifest.txt)
Si un fichier install_manifest.txt existe dans votre r�pertoire source,
il doit contenir les noms de fichier de chaque fichier cr�� par l�installation.
Commencez donc par v�rifier la liste des fichiers et leur heure de modification:
001)
Code:
cd /home/??????/SFML/
(r�pertoire ou ce trouve votre r�sultant d'installation il doit y avoir "install_manifest.txt" )
002)
Code:
sudo xargs -I{} stat -c "%z %n" "{}" < install_manifest.txt
Vous devriez obtenir z�ro erreurs et les mod fois des fichiers indiqu�s doivent �tre ou apr�s le temps d'installation.
Si tout est OK , vous pouvez les supprimer en une seule fois:
003)
Code:
mkdir deleted-by-uninstall
004)
Code:
sudo xargs -I{} mv -t deleted-by-uninstall "{}" < install_manifest.txt
L' utilisateur Merlyn Morgan-Graham a cependant un avis s�rieux au sujet de cette m�thode que vous devez garder � l' esprit
(copi� ici textuellement): � . M�fiez - vous des fichiers qui pourraient �galement avoir �t� install�s
par d' autres paquets La simple suppression de ces fichiers [...] Et briser les autres paquets ????
� . . C'est la raison pour laquelle nous avons cr�� le deleted-by-uninstall r�pertoire et les fichiers d�placer au lieu de les supprimer.
puis :
005)
Code:
sudo rm -r /usr/local/lib/cmake/SFML
006)
Code:
sudo rm -r /usr/local/include/SFML*
007)
Code:
sudo rm -r /usr/local/share/SFML*
008) pas obligatoire attention au d�pendance
Code:
sudo apt autoremove --purge libflac-dev libvorbis-dev libopenal-dev
� vos clavier
@bient�t ( proc�dure tester et roule en prod )