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 :

[Windows]Compiler une application utilisant gtk avec msys et mingw [Débutant(e)]


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 37
    Par défaut [Windows]Compiler une application utilisant gtk avec msys et mingw
    Bonjour,
    Désolé si la question a été déjà traitée, mais j'ai cherché la réponse pendant 3 jours et je ne m'en sors pas (grrr!)
    J'essaie de compiler une application gtk avec msys et mingw, sous windows.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #include <stdlib.h>
    #include <gtk/gtk.h>
     
    int main(int argc, char **argv)
    {
        /* Initialisation de GTK+ */
        gtk_init(&argc, &argv);
     
        return EXIT_SUCCESS;
    }
    Et voici ce que cela donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $ gcc -Wall `pkg-config --cflags --libs gtk+-win32-2.0` -o essaigtk essaigtk.c
    C:/DOCUME~1/lilive/LOCALS~1/Temp/cc6tbaaa.o:essaigtk.c:(.text+0x50):
    undefined reference to `gtk_init_abi_check'
    collect2: ld returned 1 exit status
    J'ai essayé aussi cela, d'après ce que j'ai lu, mais le résultat et le même:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $ gcc -Wall `pkg-config --cflags --libs gtk+-win32-2.0` -I /local/include -L /l
    ocal/lib -lgtk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangowin32-1.0 -lgdi3
    2 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -liconv -o essaigtk essaig
    tk.o      
    essaigtk.o:essaigtk.c:(.text+0x50): undefined reference to `gtk_init_abi_check'
    collect2: ld returned 1 exit status
    Sachant que j'ai installé gtk dans mon répertoire c:/msys/local
    Je commence a désespérer!

    Ce qui me tue c'est que si je mets -lgtk-win32-2.0-faute-exprés comme option, le linker me renvoie qu'il ne trouve pas -lgtk-win32-2.0-faute-exprés.
    Donc quand je lui dit -lgtk-win32-2.0 et que je n'ai pas de message d'erreur, j'en déduis qu'il intégre bien cette libraire. Et si je scanne cette librairie avec grep à la recherche de gtk_init_abi_check, j'ai une réponse positive. Donc la fonction gtk_init_abi_check à l'air bien présente dedans. Alors, pourquoi ça marche pas ?

    Quelqu'un saurait-il m'aider ???
    Merci!

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,

    Qu'est ce que te donne la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pkg-config --cflags --libs gtk+-2.0
    ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 37
    Par défaut
    Bonjour,
    Merci de t'intéresser à mon cas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $ pkg-config --cflags --libs gtk+-2.0
    -mms-bitfields -IC:/msys/1.0/local/include/gtk-2.0
    -IC:/msys/1.0/local/lib/gtk-2.0/include
    -IC:/msys/1.0/local/include/atk-1.0
    -IC:/msys/1.0/local/include/cairo
    -IC:/msys/1.0/local/include/pango-1.0
    -IC:/msys/1.0/local/include/glib-2.0
    -IC:/msys/1.0/local/lib/glib-2.0/include
    -LC:/msys/1.0/local/lib
    -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0
    -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32
    -lpangocairo-1.0 -lpango-1.0 -lcairo
    -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv
    Je ne connaissais pas cette commande. Je viens de vérifier que les dossiers mentionnés dans les -IC:/xxxxx existent. Ca c'est bon. Et que j'ai bien des .lib correspondants pour chacun des -lxxxxx, et c'est bon aussi.

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gcc -Wall `pkg-config --cflags --libs gtk+-2.0` -o essaigtk essaigtk.c
    devrait être suffisant pour compiler un programme alors. (gtk+-2.0, pas gtk+-win32-2.0, c'est la seule différence par rapport à la première commande que tu as tentée).

  5. #5
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    La première idée qui me vient serait un problème de version entre les fichiers d'entête et les bibliothèques

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 37
    Par défaut
    Pour ce qui est des problèmes de version, j'ai installé gtk+ de la façon suivante:
    J'ai téléchargé sur ftp://ftp.gtk.org/pub/ les fichiers suivants:

    gtk/v2.10/win32/gtk+-2.10.13.zip
    gtk/v2.10/win32/gtk+-dev-2.10.13.zip
    gtk/v2.10/win32/cairo-1.4.8.zip
    gtk/v2.10/win32/cairo-dev-1.4.8-win32-only.zip
    gtk/v2.10/win32/dependencies/atk-1.12.2.zip
    gtk/v2.10/win32/dependencies/atk-dev-1.12.2.zip
    gtk/v2.10/win32/dependencies/gettext-0.14.5.zipv
    gtk/v2.10/win32/dependencies/gettext-dev-0.14.5.zip
    gtk/v2.10/win32/dependencies/libiconv-1.9.1.bin.woe32.zip
    gtk/v2.10/win32/dependencies/libjpeg-6b-4.zip
    gtk/v2.10/win32/dependencies/libpng-1.2.8-bin.zip
    gtk/v2.10/win32/dependencies/libtiff-3.7.1.zip
    gtk/v2.10/win32/dependencies/libxml2-2.6.20.zip
    gtk/v2.10/win32/dependencies/pkg-config-0.20.zip
    gtk/v2.10/win32/dependencies/zlib123-dll.zip
    glib/2.12/win32/glib-2.12.12.zip
    glib/2.12/win32/glib-dev-2.12.12.zip
    pango/1.14/win32/pango-1.14.10.zip
    pango/1.14/win32/pango-dev-1.14.10.zip

    > J'ai tout décompressé dans C:\msys\1.0\local
    > J'ai suivi les instruction de usage.txt pour zlib123-dll à savoir
    - copié zlib1.dll dans msys\1.0\local\bin
    - renommé local/lib/zdll.lib en local/lib/libzdll.a
    > J'ai ajouté C:\msys\1.0\local\bin au PATH
    > et pour finir j'ai fait
    export PKG_CONFIG_PATH=/local/lib/pkgconfig
    export LD_LIBRARY_PATH=/local/lib/

    Et c'est là-dessus que je lance ma compilation avec msys.
    Et ça me donne le résultat décrit au début, que j'utilise gtk+-2.0 ou gtk+-win32-2.0 en paramètre pour pkg-config (merci teuf13)

    Y aurait-il quelque-chose qui m'échappe dans tout cela ?

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

Discussions similaires

  1. Compiler une application utilisant GTK+ avec MinGW
    Par lilivounet dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 19/06/2009, 14h42
  2. Quels API's utiliser pour une application en rapport avec Autocad?
    Par Angelsoul dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 31/07/2008, 15h21
  3. [Windows]Compiler une application utilisant gtk avec msys et mingw
    Par fcodvpt dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 22/04/2008, 13h59
  4. compiler une application c++ avec ses librairies
    Par elekis dans le forum Linux
    Réponses: 2
    Dernier message: 08/08/2007, 20h19
  5. [Compiler] Compiler une application avec plusieurs fichiers m
    Par ploukinet dans le forum MATLAB
    Réponses: 3
    Dernier message: 10/05/2007, 17h34

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