IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GCC Discussion :

Install SFML last version


Sujet :

GCC

  1. #1
    Membre expérimenté

    Homme Profil pro
    Retraite
    Inscrit en
    Octobre 2005
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 485
    Points : 1 365
    Points
    1 365
    Billets dans le blog
    1
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    apt list --installed | grep -i libfreetype6-dev
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    apt list --installed | grep -i libxrandr-dev
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    apt list --installed | grep -i libudev-dev
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    apt list --installed | grep -i libogg-dev


    vous ne devriez avoir que cela à installer --->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo apt install libflac-dev libvorbis-dev libopenal-dev

    ==================================================


    pour faire la documentation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo apt-get -y install cmake
    (bien souvent réclamer pour des projets préparés pour des installations multiplateformes)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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)
    source code
    --> votre répertoire ou vous extrait votre zip
    2)
    build binaries
    --> $home/sflm



    pour Linux tout est déjà prêt

    3)
    choisir ->
    configure
    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 ->
    generate
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    export PATH=$PATH:/home/votre_User/SFML-2.5.1/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo echo "/usr/local/lib" > sfml.conf
    on copy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :

    Code Makefile : Sélectionner tout - Visualiser dans une fenêtre à part
    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)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     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 : Sélectionner tout - Visualiser dans une fenêtre à part
     mkdir deleted-by-uninstall
    004)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo rm -r  /usr/local/lib/cmake/SFML
    006)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo rm -r  /usr/local/include/SFML*
    007)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo rm -r  /usr/local/share/SFML*
    008) pas obligatoire attention au dépendance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo apt autoremove --purge libflac-dev libvorbis-dev libopenal-dev
    à vos clavier

    @bientôt ( procédure tester et roule en prod )

  2. #2
    Membre expérimenté

    Homme Profil pro
    Retraite
    Inscrit en
    Octobre 2005
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 485
    Points : 1 365
    Points
    1 365
    Billets dans le blog
    1
    Par défaut
    Pour les options de compilation
    avec GCC cela vous protégera des débordements ( enfin ne pourra en aucun cas vous laissé indifférent , ce rapporté à la doc merci )

    en GCC 8 cela fonctionne -fstack-clash-protection -fstack-protector-all pour GCC 9 les options conjointes ne fonctionnes pas utilisez -fstack-protector-all

  3. #3
    Membre expérimenté

    Homme Profil pro
    Retraite
    Inscrit en
    Octobre 2005
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 485
    Points : 1 365
    Points
    1 365
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par JPLAROCHE Voir le message
    Pour les options de compilation
    avec GCC cela vous protégera des débordements ( enfin ne pourra en aucun cas vous laissé indifférent , ce rapporté à la doc merci )

    en GCC 8 cela fonctionne -fstack-clash-protection -fstack-protector-all pour GCC 9 les options conjointes ne fonctionnes pas utilisez -fstack-protector-all
    Beug résolue vous pouvez utiliser GCC 8 -> 9 ... -fstack-clash-protection -fstack-protector-all

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Install FOX-TOOLKIT last version DEV
    Par JPLAROCHE dans le forum GCC
    Réponses: 2
    Dernier message: 04/07/2019, 09h27
  2. Installation de differentes versions
    Par Raphael39 dans le forum Access
    Réponses: 4
    Dernier message: 25/10/2007, 13h51
  3. [gcc] installation d'une version antérieure
    Par Longrais dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 04/04/2007, 11h17
  4. Réponses: 2
    Dernier message: 23/01/2006, 15h18
  5. Install de plusieurs versions d'Oracle
    Par macben dans le forum Installation
    Réponses: 1
    Dernier message: 14/09/2005, 17h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo