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+ avec C & C++ Discussion :

compiler un projet CodeBlocks Windows dans CodeBlocks Linux


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web en Loisir
    Inscrit en
    Janvier 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web en Loisir

    Informations forums :
    Inscription : Janvier 2006
    Messages : 129
    Par défaut compiler un projet CodeBlocks Windows dans CodeBlocks Linux
    bonjour,

    J'ai un projet fabriqué sous gtk3.6 windows avec Codeblocks 13, la librairie goocanvas est installé également. Tout fonctionne.

    Je débute totalement dans linux.
    Je viens d'installer linux Ubuntu 13.10, codeblocks 13. (et goocanvas en tapant sudo apt-get install libgoocanvas-dev)
    J'ai ensuite ouvert mon project dans Codeblocks linux et enlever les linker et compiler settings windows.
    Puis dans compiler settings, j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `pkg-config gtk+-3.0 --flags`
    et dans linker :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `pkg-config gtk+-3.0 --libs`
    J'ai une erreur à la compil : goocanvas.h no such file or directory.
    J'ai cherché dans google mais n'ai rien trouvé.

    Que faire pour régler mon problème ?

  2. #2
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    Bonjour,

    je ne suis pas sûr que tu puisses faire ça comme ça... Il me semble que goocanvas c'est pour du GTK2, pas GTK3. Du coup si tu tapes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pkg-config gtk+-3.0 --cflags
    dans un terminal, tu verras que goocanvas n'y apparait pas, parce que ce n'est pas une dépendance de GTK3 (ni de GTK2, d'ailleurs).

    D'ailleurs, l'option c'est cflags, pas flags.

    Tu peux essayer dans les compiler settings:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pkg-config gtk+-3.0 goocanvas --cflags
    mais à mon avis ça ne marchera pas car goocanvas est fait pour GTK 2. Essaie donc plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pkg-config gtk+-2.0 goocanvas --cflags
    Tu avais réussi à faire fonctionner goocanvas et GTK 3 sous Windows ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web en Loisir
    Inscrit en
    Janvier 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web en Loisir

    Informations forums :
    Inscription : Janvier 2006
    Messages : 129
    Par défaut
    salut,

    Merci pour ta réponse.
    Oui goocanvas fonctionne très bien avec gtk3 sous windows. (edit : mais il faut goocanvas 2.0 pour gtk3)

    A savoir que j'ai aussi installé libxml2 en faisant sudo apt-get install libxml2-dev car je l'ai dans mon projet windows.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <libxml/parser.h>
    #include <libxml/tree.h>
    J'ai essayé de compilé à nouveau en suivant tes indications (et mis gtk+-2.0 bien que mon projet soit en gtk3) en mettant dans compiler settings et linker ceci: (avec les espèces de guillemets)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    `pkg-config gtk+-2.0 goocanvas --cflags`
    `pkg-config gtk+-2.0 goocanvas --libs`
    J'ai une erreur : Fatal error libxml/parser.h no such file or directory
    J'en déduis que la librairie libxml2 est mal configurée.
    Que dois-je mettre comme lien dans le include ? et dans le compiler seeting et linker ?

    Alors j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    `pkg-config gtk+-2.0 goocanvas libxml2 --cflags`
    `pkg-config gtk+-2.0 goocanvas libxml2 --libs`
    et là il me remet fatal error goocanvas.h no such file...

    J'ai aussi essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    `pkg-config gtk+-3.0 goocanvas --cflags`
    `pkg-config gtk+-3.0 goocanvas --libs`
    J'ai fatal error : goocanvas.h no such file

    Une fois aussi (mais j'arrive pas à reproduire l'erreur) j'ai eu qu'il ne trouvait pas gtk3 ??
    J'avais cru comprendre qu'il était pourtant installé en parallèle avec gtk2 dans linux non ?

    Je veux bien etre aidé encore un peu parce que je nage.....

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web en Loisir
    Inscrit en
    Janvier 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web en Loisir

    Informations forums :
    Inscription : Janvier 2006
    Messages : 129
    Par défaut essai avec hello world
    J'ai fait new project et codeblocks m'a donc mis le programme hello world dans le main.

    Il compile parfaitement sous gtk2 mais quand je change 2.0 en 3.0 dans le compiler settings et dans le linker j'ai une erreur gtk/gtk.h no such file.

    je crois que mes problèmes commencent par là...

    que faire ?

    Edit : J'ai trouvé gtk3 est installé mais pas le package de dévelopement
    J'ai donc fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo apt-get install libgtk-3-dev
    Hello world compile et ça tourne (bon y'a un warning mais normal c'est du gtk2)

    Je retourne essayer avec mon projet.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web en Loisir
    Inscrit en
    Janvier 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web en Loisir

    Informations forums :
    Inscription : Janvier 2006
    Messages : 129
    Par défaut essai avec un petit projet
    Je suis de retour. J'ai essayé de compiler avec les settings suivants
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    `pkg-config gtk+-3.0 goocanvas --cflags`
    `pkg-config gtk+-3.0 goocanvas --libs`
    le code :
    Code : 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
    #include <stdlib.h>
    #include <stdarg.h>
    #include <string.h>
    #include <glib.h>
    #include <stdio.h>
    #include <math.h>
    #include <gtk/gtk.h>
    #include <goocanvas.h>
     
    #ifndef M_PI
     #define M_PI 3.141592653
    #endif
     
     
     
    int main(int argc, char *argv[])
    {
        gtk_init (&argc, &argv);
     
        GtkWidget* window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
        gtk_window_set_default_size (GTK_WINDOW (window), 1260, 960);
        gtk_window_move(GTK_WINDOW(window), 0, 0);
        g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
     
        gtk_widget_show_all(window);
     
     
        gtk_main ();
        return 0;
    }
    Les réglages de compiler settings et linker ont l'air d'etre bon car la compilation démarre mais j'ai un message d'erreur :
    usr/include/goocanvas-1.0/goocanvastext.h error: unknown type name 'GtkAnchorType'
    usr/include/goocanvas-1.0/goocanvaswidget.h error: unknown type name 'GtkAnchorType'
    usr/include/goocanvas-1.0/goocanvas.h error: unknown type name 'GtkAnchorType'

    Est ce que ça viendrait du fait que les versions de goocanvas sous linux seraient différentes ?
    sous windows j'ai la version goocanvas 2.0.1 qui correspond à l'update pour gtk3, et sous linux je sais pas comment on fait pour connaitre la version ?
    L'erreur de compil donne 1.0 mais est-ce bien la version ??
    Si oui comment faire pour mettre à jour la version sous linux ?

    Edit: j'ai trouve un lien http://ftp.gnome.org/pub/GNOME/sources/goocanvas/ pour recuperer goocanvas 2.0.1 mais je sais pas comment faire pour l'installer correctement sous ubuntu

    edit 2 : il semble qu'on puisse l'installer avec apt-get install libgoocanvas-2.0-dev, je vais essayer ça ce soir

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web en Loisir
    Inscrit en
    Janvier 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web en Loisir

    Informations forums :
    Inscription : Janvier 2006
    Messages : 129
    Par défaut récapitulatif réglages codeblocks Ubuntu avec libxml et goocanvas
    rebonjour,

    Je poste la réponse pour ceux que ça interesse. Merci à Liberforce de m'avoir mis sur la voie

    Code : 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
    #include <stdlib.h>
    #include <stdarg.h>
    #include <string.h>
    #include <glib.h>
    #include <stdio.h>
    #include <math.h>
    #include <gtk/gtk.h>
    #include <goocanvas.h>
    #include <libxml/parser.h>
     
    #ifndef M_PI
     #define M_PI 3.141592653
    #endif
     
     
     
    int main(int argc, char *argv[])
    {
        gtk_init (&argc, &argv);
     
        GtkWidget* window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
        gtk_window_set_default_size (GTK_WINDOW (window), 1260, 960);
        gtk_window_move(GTK_WINDOW(window), 0, 0);
        g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
     
        gtk_widget_show_all(window);
     
     
        gtk_main ();
        return 0;
    }
    1- Installer Ubuntu
    2- Ouvrir un terminal et installer les paquets gtk3 pour le développement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo apt-get install libgtk-3-dev
    3 Installer goocanvas 2.0 (pour gtk3) (pour gtk2 prendre goocanvas 1.0)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo apt-get install libgoocanvas-2.0-dev
    4 Installer libxml2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo apt-get install libxml2-dev
    Réglages codeblocks:
    Dans project, build options, onglet Compiler settings, onglet Other options
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    `pkg-config gtk+-3.0 goocanvas-2.0 --cflags`
    `xml2-config --cflags`
    Dans onglet Linker settings, onglet other linker options
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    `pkg-config gtk+-3.0 goocanvas-2.0 --libs`
    `xml2-config --libs`
    Et voilà, je vais pouvoir utiliser Valgrind

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

Discussions similaires

  1. Erreur dans codeblocks pour GTK sous Windows
    Par acryline dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 09/08/2010, 14h27
  2. Problème de compilation de projets Ogre sous CodeBlocks - Vista
    Par Verbalinsurection dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 08/10/2007, 22h17
  3. Compiler un DSO compatible windows et linux
    Par Nillak dans le forum Delphi
    Réponses: 3
    Dernier message: 25/01/2007, 16h10
  4. API windows erreur a la compilation du projet
    Par JoneZy dans le forum Windows
    Réponses: 3
    Dernier message: 25/12/2006, 23h38
  5. Intellisense dans CodeBlocks?
    Par vdumont dans le forum Code::Blocks
    Réponses: 2
    Dernier message: 21/11/2006, 19h24

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