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
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
apt list --installed | grep -i libfreetype6-dev
apt list --installed | grep -i libxrandr-dev
apt list --installed | grep -i libudev-dev
apt list --installed | grep -i libogg-dev
vous ne devriez avoir que cela à installer --->
sudo apt install libflac-dev libvorbis-dev libopenal-dev
==================================================
pour faire la documentation
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)
sudo apt-get -y install cmake
(bien souvent réclamer pour des projets préparés pour des installations multiplateformes)
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
export PATH=$PATH:/home/votre_User/SFML-2.5.1/
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
sudo echo "/usr/local/lib" > sfml.conf
on copy
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
# 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 :
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) (répertoire ou ce trouve votre résultant d'installation il doit y avoir "install_manifest.txt" )
002)
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)
mkdir deleted-by-uninstall
004)
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)
sudo rm -r /usr/local/lib/cmake/SFML
006)
sudo rm -r /usr/local/include/SFML*
007)
sudo rm -r /usr/local/share/SFML*
008) pas obligatoire attention au dépendance
sudo apt autoremove --purge libflac-dev libvorbis-dev libopenal-dev
à vos clavier
@bientôt ( procédure tester et roule en prod )
Partager