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 TGUI framework et designer utilisant SFML


Sujet :

GCC

  1. #1
    Membre expérimenté

    Homme Profil pro
    Retraite
    Inscrit en
    Octobre 2005
    Messages
    479
    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 : 479
    Points : 1 348
    Points
    1 348
    Billets dans le blog
    1
    Par défaut Install TGUI framework et designer utilisant SFML
    Bonjour:
    référence https://tgui.eu/

    voici comment installer TGUI

    ce logiciel :
    un framework qui peut s'utiliser comme gtk par ex la communauté est très active
    il vous faudra un peu de persévérance mais les exemple permettent de prendre rapidement la température ......
    d'autre part il y a un designer gui-builder qui à la manière de gtkbuilder là aussi il avance à grand pas mais la version en cours vous permettra de monter le cheval ....( c'est aussi pour cela qu'installer à la main vous sera profitable et vous permet de mieux connaître votre environnement )
    gui-builder est un peu déroutant n’oublier pas de mettre le chemin complet lorsque la fenêtre s’ouvrira.
    il est assez complet (les widgets) bien-sur le reste arrive mais on peu dire qu'il est opérationnel le fondamental est solide.

    personnellement j'ai été étonné par le professionnalisme lors d'un projet et que vous embarqué l’ensemble 8mo en mémoire mais on peu l'alléger et réguler la fréquence , c'est logiciel qui permet de faire aussi bien de l'animation audio et gestion


    l'installation paraît monstrueuse mais enfin de compte en moins de 5 mn votre environnement est opérationnel.


    particularité pour GCC Linux: Debian / Ubuntu et ses dérivés. pour les autres distribution les mêmes packets .

    pourquoi cette installation , les packages (TGUI) ne sont pas au dernier niveau. (développement très très actif )

    _____________________________________________________________________________________________

    vous devez avoir installer SFML


    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 libtgui*
    afin de ne pas avoir de conflit par exemple si vous avez installer TGUI depuis un dépôt
    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.



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

    TGUI

    récupération de la dernière version stable
    prendre
    code 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/tgui



    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...

    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/TGUI-0.8.5/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    export PATH=$PATH:/home/votre_User/TGUI/
    -----------------------------------------------

    compilation TGUI
    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 libtgui....so est situé dans /usr/local/lib/ (si vous en êtes ici pas de problème)


    créer un simple fichier tgui.conf comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo echo "/usr/local/lib" > tgui.conf
    on copy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo cp tgui.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 or TGUI 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 trouverez sur la page tgui

    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    # nom de l'exécutable :
     
    # nom de l'executable :
    PROJET = test
     
     
     
    # Adresse des sources, des objets et des includes :
    SRCDIR = $(CURDIR)/src/
    OBJDIR = $(CURDIR)/obj/
    BINDIR = $(CURDIR)/bin/
     
     
     
    INCLUDES =\
    -I$(SRCDIR)
     
    INCLIB =
     
     
    # .cxx à moduler etc.....
    OBJCPP = \
    	$(patsubst %.cxx,$(OBJDIR)%.o,$(notdir $(wildcard $(SRCDIR)*.cxx))) \
    	$(patsubst %.cpp,$(OBJDIR)%.o,$(notdir $(wildcard $(SRCDIR)*.cpp)))
     
     
    #/usr/lib/x86_64-linux-gnu/libdl.so
     
     
    RESULT= $(BINDIR)$(PROJET)
     
    # choix du compilateur :
    CXX = g++
     
     
    # options compilations :    -lctemplate -lX11   -pthread  -fpic -DPIC '-DUNICODE=1' -no-pie
     
    # -------------------------------------------------------------------
    #  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` \
    			`pkg-config --cflags tgui`
     
     
    CXXFLAGS=	-std=c++17	 -Wall	-fexceptions	 -pedantic-errors 	-Wextra	-Wparentheses	-Waddress	\
    			-ftree-coalesce-vars  -fstack-clash-protection -fstack-protector-all \
    			-Wsign-compare -fpermissive -fstrict-overflow \
    			`pkg-config --cflags sfml-all` \
    			`pkg-config --cflags tgui`
     
     
     
    LDFLAGS=      `pkg-config sfml-all --libs` `pkg-config tgui --libs`
     
     
    OPTIMIZE = -fexpensive-optimizations -Os -s 
     
    # -------------------------------------------------------------------
    #  debug
    # -------------------------------------------------------------------
     
    else
     
    CPPFLAGS=	-std=c++17  -O3 -ggdb -g3 -DDEBUG \
    				-Wall	-fexceptions	 -Wextra	-pedantic-errors -Wunused-variable -Wparentheses	-Waddress	\
    				-Wsign-compare -fpermissive	\
    				-ftree-coalesce-vars -fstrict-overflow \
    				`pkg-config --cflags sfml-all` \
    				`pkg-config --cflags tgui`
     
     
     
    CXXFLAGS=	-std=c++17  -O3 -ggdb -g3 -DDEBUG \
    				-Wall	-fexceptions	 -Wextra	-pedantic-errors -Wunused-variable	-Wparentheses	-Waddress	\
    				-Wsign-compare -fpermissive	\
    				-ftree-coalesce-vars -fstrict-overflow \
    				`pkg-config --cflags sfml-all` \
    				`pkg-config --cflags tgui`
     
    LDFLAGS = -no-pie `pkg-config sfml-all --libs` `pkg-config tgui --libs`
     
     
    OPTIMIZE =
     
     
    endif
    # -------------------------------------------------------------------
    #  compilation -no-pie
    # -------------------------------------------------------------------
    # compilation obj :  ex  @echo $(OBJCPP)  liste variable
     
     
    # regle edition de liens
    all : $(OBJCPP)
     
    	@echo $(HOME)
    # regle de compilation des sources objet
    	$(CXX)  $(OBJCPP) -o $(RESULT) $(OPTIMIZE) $(LDFLAGS) $(INCLIB)
    	du -sh	$(RESULT)
     
    ifeq ($(PROD), true)
    		rm -rf  $(OBJDIR)*.o
    endif
     
    $(OBJDIR)%.o: $(SRCDIR)%.cxx
    	$(CXX)	$(CXXFLAGS) $(INCLUDES)	 -o	$@	-c	$<
     
    $(OBJDIR)%.o: $(SRCDIR)%.cpp
    	$(CXX)	$(CPPFLAGS) $(INCLUDES)	 -o	$@	-c	$<
     
    # pour effacer tous les objets :
    clean : $(OBJDIR)
    	rm -rf  $(OBJDIR)*.o
     
    # pour effacer l'executable :
    mrprope: clean
    	rm -rf $(RESULT)



    ============================================================================
    UNISTALL
    ============================================================================

    merci à stackoverflow.com
    https://stackoverflow.com/questions/...-library-in-li

    procédure 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/TGUI
    006)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo rm -r  /usr/local/include/TGUI*
    007)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo rm -r  /usr/local/share/tgui-0.8*
    à vos clavier

    @bientôt ( procédure tester et roule en TEST) , l'idée est de développer sur linux (bien maîtriser ) et de pouvoir sans changer le code de recompiler sur les autres plateformes.....

  2. #2
    Membre expérimenté

    Homme Profil pro
    Retraite
    Inscrit en
    Octobre 2005
    Messages
    479
    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 : 479
    Points : 1 348
    Points
    1 348
    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
    479
    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 : 479
    Points : 1 348
    Points
    1 348
    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 resolu Vous pouvez utiliser GCC8 -> 9... -fstack-clash-protection -fstack-protector-all

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

Discussions similaires

  1. [Tiles] Installation du framework Tiles
    Par orus2 dans le forum Struts 1
    Réponses: 2
    Dernier message: 19/06/2006, 16h27
  2. Installer le framework avec EasyPHP (si possible)
    Par vacknov dans le forum Zend Framework
    Réponses: 4
    Dernier message: 16/06/2006, 09h44
  3. Réponses: 5
    Dernier message: 10/05/2006, 09h10
  4. [Framework] [Claw] installer le framework avec exemple?
    Par yolepro dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 06/03/2006, 19h55
  5. Delphi 7 - Install client d'une appli utilisant DBExpress
    Par rouxy dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/08/2005, 15h30

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