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

GTK+ Discussion :

GTK4 + Code:blocks


Sujet :

GTK+

  1. #1
    Membre confirmé
    Homme Profil pro
    chercheur
    Inscrit en
    Décembre 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Décembre 2012
    Messages : 199
    Par défaut GTK4 + Code:blocks
    Bonjour à tous,

    Il y a bien longtemps que je ne me suis pas exprimé sur ce forum. Voici le problème auquel je suis confronté aujourd'hui :

    Je connais bien, je pense, GTK2, mais désire à présent passer sur GTK4 (oui - je sais - il serait temps..). Je suis sous Windows 11 (nouvelle machine).

    J'ai posé GTK4 correctement, je pense (via MSYS2). Lancer par exemple gtk4-demo.exe fonctionne correctement.

    J'ai posé correctement code:blocks avec GCC (je peux compiler du code C ansi standard).

    Il ne me reste plus qu'à lier les deux. Et ça fait plusieurs heures que je tourne en rond sans arriver à configurer code:blocks pour qu'il trouve les bonnes librairies, includes, etc.

    Avec GTK2, c'est moi qui contrôlais la directory d'installation de GTK, des lib, des includes, etc., et du coup je pouvais indiquer manuellement où tout ceci se trouve. Ce n'est plus le cas avec MSYS2.

    Une âme charitable, qui connaitrai cet environnement de développement, pourrait-il m'aider ?

    D'avance merci pour toute aide sur ce point.

    Cordialement, Eric.

  2. #2
    Membre confirmé
    Homme Profil pro
    chercheur
    Inscrit en
    Décembre 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Décembre 2012
    Messages : 199
    Par défaut
    Bon, j'ai trouvé la page suivante: https://www.developpez.net/forums/d2...-sous-windows/

    Si je suis toutes les indications (sans problème) je bute de nouveau sur les problèmes suivants :

    1) Dans code:blocks, si je crée une simple "console application" pour du code C standard. Si je "build and run" le code correspondant, je tombe sur "It seems that this project has not been buit yet. Do you want buit it now?". Si je réponds "Oui", je retombe sur ce même message. Bref, je ne peux même plus compiler du simple code C.

    2) Dans code:block, si je crée un projet GTK (via "create a new project")., je tombe sur une fenêtre pop-up qui me demande "GTK location:" et me propose "$(#gtk)" (mais cette variable d'environnement n'existe pas - encore). Je tombe alors sur un message "The patch you entered seems valid but the wizard can't locate the following GTK's include file: gtk.h in it." et je ne peux sortir de cette situation. Bref, je ne peux pas non plus compiler du code avec GTK".

    Quelqu'un pourrait-il m'aider à sortir de ces problèmes ?

    Encore merci pour toute aide sur ces points.

    Cordialement, Eric.

  3. #3
    Membre confirmé
    Homme Profil pro
    chercheur
    Inscrit en
    Décembre 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Décembre 2012
    Messages : 199
    Par défaut
    Bon, je me réponds à moi-même.

    J'ai réussi à m'en sortir. J'avoue avoir demandé de l'aide à ChatGPT.. Ce n'était pas simple, du tout.

    Je peux commencer à présent à me familiariser avec GTK4. Je ne manquerai pas de revenir ici en cas de problème.

    Désolé pour le dérangement.

    Cordialement, Eric.

  4. #4
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 330
    Billets dans le blog
    5
    Par défaut
    Bonjour.

    Pourrais-tu, pour les futurs lecteurs de ce poste, mettre la solution au problème rencontré ?

    En te remerciant par avance.

  5. #5
    Membre confirmé
    Homme Profil pro
    chercheur
    Inscrit en
    Décembre 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Décembre 2012
    Messages : 199
    Par défaut
    Citation Envoyé par gerald3d Voir le message
    Bonjour.

    Pourrais-tu, pour les futurs lecteurs de ce poste, mettre la solution au problème rencontré ?

    En te remerciant par avance.
    Oui, oui, c'est une bonne idée, pour une fois que je peux aider les autres. La solution n'est d'ailleurs par forcément longue à expliquer, mais il m'a fallu des heures pour la trouver (..).

    La trame qui est ici : https://gerald3d.developpez.com/tuto...tk/codeblocks/ est globalement la bonne (merci Gérald) mais je pense qu'il y a eu des modifications des versions de MSYS2 et de Code:Blocks ce qui fait qu'on ne retrouve pas toujours les instructions à suivre. Il y à principalement trois points importants à prendre en compte.

    1) La pose de MSYS2 pose en fait plusieurs terminaux, et c'est dans MSYS2 MSYS qu'il faut effectivement lancer :
    pacman -Syu
    pacman -Su
    pacman -S mingw-w64-x86_64-toolchain (installation du compilateur)
    pacman -S mingw-w64-x86_64-gtk4 (installation de la library de gtk4)
    pacman -S mingw-w64-x86_64-pkgconf (installation du package de configuration de gtk4)

    Fermer MSYS2 MSYS, mais cette fois-ci ouvrir MSYS2 UCRT64, et dans ce nouveau terminal, lancer :
    gcc --version
    pkg-config --modversion gtk4
    (afin de vérifier si le compilateur et la library gk4 sont bien installés)

    Si oui, alors tout est ok. On va directement dans Code:blocks (voir ci-dessous). Si non, il faut installer GTK dans UCRT64:
    pacman -S mingw-w64-ucrt-x86_64-gtk4 mingw-w64-ucrt-x86_64-pkgconf

    Fermer et rouvrir UCRT64. A présent :
    gcc --version
    pkg-config --modversion gtk4
    devraient renvoyer des résultats montrant que le compilateur et la librairie GTK4 sont bien installés. Sinon, relancer l'installation du compilateur, de la librairie et du package de configuration dans cette fenêtre. Puis ressortir et re-rentrer.

    On passe ensuite dans Code:Blocks et on suit les indications données sur la page web de Gérald, avec - tout de même - deux problèmes (supplémentaires) à résoudre :

    2) Dans Code:Blocks (jai la dernière version 25.05), le menu "create a new project" lance généralement une fenêtre pop-up avec des wizards qui permettent de choisir le type de projet. Ce qui est (vraiment) piégeux, est que l'option d'ouvrir un "GTK+ project" ne marche pas. C'est d'autant plus piégeux que ça fait plusieurs décennies que je l'utilise sans problème (..). Elle correspond en fait à d'anciennes versions de GTK, mais elle ne sait pas gérer (include, library..) la version posée par MSYS2.. Ce n'est expliqué nulle part sur le web, j'ai découvert ceci uniquement fortuitement. Il faut choisir plutôt "Console application" comme si vous codiez du C ANSI standard.

    3) Il se trouve que la syntaxe avec des "quotes inversées" (obtenus par exemple avec AltGr + 7), très fréquente sur unix/linux, est apparemment bien comprise dans Settings -> Compiler -> compiler settings -> Other compiler options (comme indiqué sur la page web explicative de Gérald), mais elle n'est pas comprise dans Settings -> Compiler -> Linker settings (fenêtre de droite). Ne demandez pas pourquoi. Ca ressemble à un bug de Code::Blocks. Pour se sortir de ce problème il ne faut pas demander à Code:Bllock d’exécuter (avec des "quotes inversées") la commande `pkg-config gtk4 –-libs` mais de remplacer cette instruction par son véritable résultat directement. Pour se faire, ouvrir un terminal MSYS2 UCRT64, et lancer l'instruction :
    pkg-config --libs gtk4

    On récupère une sortie de la forme:
    -lgtk-4 -lgdk-4 -lpangocairo-1.0 -lglib-2.0 ...

    Que l'on copie et que l'on colle directement dans Settings -> Compiler -> Linker settings (fenêtre de droite).

    Et c'est tout. Cette procédure propose un compilateur (et Code:Blocks sait où le trouver en suivant les indications dans la page explicative de Gérald), et installe la library GTK4 et explique à Code:Blocks comment l'utiliser.

    En espérant que ceci servira à d'autres...

    Eric.

  6. #6
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 330
    Billets dans le blog
    5
    Par défaut
    Merci pour cette belle explication.

    Bonne continuation.

Discussions similaires

  1. [Débutant] Compiler glu.h sous Code::Blocks
    Par allanp8 dans le forum OpenGL
    Réponses: 10
    Dernier message: 18/11/2007, 00h56
  2. Code blocks ajouter un .lib
    Par gl0be dans le forum Code::Blocks
    Réponses: 7
    Dernier message: 09/09/2006, 15h04
  3. [Code::Block] Traduction francaise?
    Par Zenol dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 20/02/2006, 16h06
  4. [code::blocks] Completion de code
    Par anykeyh dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 20/12/2005, 16h53

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