Forum Programmation.c compiler avec gcc appliquation gtk

Posté par  .
Étiquettes : aucune
0
30
juin
2005
voici mon code enregistré dans essaigtk.c

#include <stdlib.h>
#include <gtk/gtk.>

int main(int argc, char **argv)
{
/* Initialisation de GTK+ */
gtk_init(&argc, &argv);

return EXIT_SUCCESS;
}

ma question est quelles commandes tapé pour la compiler ?
je suis débutant avec gcc mais pas en programmation (enfin si on veux)

merci

aussi
  • # pkg-config est ton ami

    Posté par  . Évalué à 4.

    gcc `pkg-config --libs --cflags gtk+-2.0` plop.c -o plop
    • [^] # Re: pkg-config est ton ami

      Posté par  . Évalué à 1.

      merci

      voila ce que craignais:

      Package gtk+-2.0 was not found in the pkg-config search path.
      Perhaps you should add the directory containing `gtk+-2.0.pc'
      to the PKG_CONFIG_PATH environment variable
      No package 'gtk+-2.0' found
      essaigtk.c:2:20: gtk/gtk.: No such file or directory

      donc je dois installer gtk+-2.0
      je l'ai télécharger decompresse le fichier puis ./configure

      configure: error: Library requirements (glib-2.0 >= 2.0.0 atk >= 1.0.0 pango >= 1.0.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them

      ok j'install glib-2.0 sans probleme puis au tour de atk qui me dis
      checking for GLIB - version >= 2.0.0...
      *** 'pkg-config --modversion glib-2.0' returned 2.0.0, but GLIB (2.4.6)
      *** was found! If pkg-config was correct, then it is best
      *** to remove the old version of GLib. You may also be able to fix the error
      *** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing
      *** /etc/ld.so.conf. Make sure you have run ldconfig if that is
      *** required on your system.
      *** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH
      *** to point to the correct configuration files

      donc je s'uposse que je dois désinstaller glib2.0 car j'ai déja la version 2.4.6 ?

      oui mais comment faire ? (je suis un noob mais j'essaye de m'amélioré)
      • [^] # Re: pkg-config est ton ami

        Posté par  . Évalué à 4.

        Dans l'outil de gestion de paquet de ta distrib, trouve et installe gtk-dev (ou libgtk-dev ou gtk2-dev, libgtk-2 dev)
      • [^] # Distrib ?

        Posté par  . Évalué à 2.

        Là, pour qu'on puisse t'aider, il faut que tu nous dise qu'elle est la ditribution que tu utilises...
  • # libgtk+-2.0devel installer mais...

    Posté par  . Évalué à 1.

    j'ai installer libgtk+-2.0devel

    si je tape:
    pkg-config --modversion gtk+-2.0

    il me renvoie:
    2.4.9

    (ce qui me fais penser que c'est installé)

    donc j'essaye de compiler mon fichier essaigtk.c:

    gcc `pkg-config --cflags --libs gtk+-2.0` /home/arno/essaigtk.c -o essaigtk

    et il me dis ceci:

    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../libgdk-x11-2.0.so: undefined reference to `g_unsetenv'
    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../libgtk-x11-2.0.so: undefined reference to `g_str_has_prefix'
    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../libgtk-x11-2.0.so: undefined reference to `g_object_interface_find_property'
    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../libgtk-x11-2.0.so: undefined reference to `g_type_instance_get_private'
    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../libgtk-x11-2.0.so: undefined reference to `g_completion_complete_utf8'
    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../libgdk-x11-2.0.so: undefined reference to `g_fprintf'
    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../libgtk-x11-2.0.so: undefined reference to `g_param_spec_get_redirect_target'
    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../libgtk-x11-2.0.so: undefined reference to `g_object_class_override_property'
    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../libgtk-x11-2.0.so: undefined reference to `g_type_class_add_private'
    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../libgtk-x11-2.0.so: undefined reference to `g_object_interface_install_property'
    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../libgtk-x11-2.0.so: undefined reference to `g_markup_printf_escaped'
    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../libgdk-x11-2.0.so: undefined reference to `g_get_application_name'
    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../libgtk-x11-2.0.so: undefined reference to `g_value_take_string'
    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../libgtk-x11-2.0.so: undefined reference to `g_sprintf'
    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../libgtk-x11-2.0.so: undefined reference to `g_str_has_suffix'
    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../libgtk-x11-2.0.so: undefined reference to `g_markup_vprintf_escaped'
    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../libpango-1.0.so: undefined reference to `g_unichar_get_mirror_char'
    collect2: ld returned 1 exit status

    je suppose que gtk est mal installer...
    quel casse tête enfin merci de votre aide en tous cas, bientot si ça marche je pourrai programmé en c sur linux !

    merci encore

    à oui le contenu de mon fichier c:
    #include <stdlib.h>
    #include <gtk/gtk.h>

    int main(int argc, char **argv)
    {
    /* Initialisation de GTK+ */
    gtk_init(&argc, &argv);

    return EXIT_SUCCESS;
    }
    • [^] # bien installer je confirme

      Posté par  . Évalué à 1.

      [root@localhost arno]# urpmi libgtk+2.0_0-devel
      Tout est déjà installé
      [root@localhost arno]#

      bien installer non alors qu'est-ce qu'il me fais ?
      • [^] # Re: bien installer je confirme

        Posté par  (site web personnel) . Évalué à 1.

        Là c'est plutôt la glib qui pose problème, rajoute un `glib-config --cflags --libs` dans ta ligne gcc...
        • [^] # Re: bien installer je confirme

          Posté par  . Évalué à 1.

          Si tu as une Mandrake (qui est basée sur les rpms), il est plus judicieux
          d'installer les rpms Mandrake que de compiler puis installer (./configure, make, make install).
          De ce que j'ai compris, tu as installé une glib après l'avoir compilée sur une glib déjà existante.
          • [^] # Re: bien installer je confirme

            Posté par  . Évalué à 1.

            [arno@localhost arno]$ pkg-config --modversion glib-2.0
            2.0.0

            est-ce que cela veux dire que c'est bon

            que me conseiller vous désinstaller et reinstaller mes packtage de developpement ?
        • [^] # ok

          Posté par  . Évalué à 1.

          tu peux m'écrire la ligne complette s'il te plait

          merci

          comme ça?

          gcc `pkg-config --libs --cflags gtk+-2.0` `glib-config --cflags --libs` essaigtk.c -o essaigtk

          ou?

          gcc `pkg-config --libs --cflags gtk+-2.0 glib-config --cflags --libs` essaigtk.c -o essaigtk
          • [^] # Re: ok

            Posté par  . Évalué à 1.

            gcc `pkg-config --libs --cflags gtk+-2.0 glib-2.0` essaigtk.c -o essaigtk<\tt>
            • [^] # Re: ok

              Posté par  . Évalué à 1.

              ok même erreur renvoyée merci quand même
              ah quel merdier vais y arriver !
            • [^] # Re: ok

              Posté par  . Évalué à 1.

              Mais, normalement, c'est pas nécessaire d'ajouter glib-2.0...

              Ici, j'ai déjà tout ce qu'il faut avec pkg-config --libs --cflags gtk+-2.0 :

              -DXTHREADS -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
  • # merci encore

    Posté par  . Évalué à 1.

    bon merci encore de m'avoir aider là je vais arrêter l'ordi (00h06)
    et puis je verai bien demain j'ai du merder quand j'ai compiler moi même la glib alors quel était déja installer....

    allez à plus merci
    • [^] # Re: merci encore

      Posté par  (site web personnel) . Évalué à 2.

      C'est dur d'écouter ce qu'on te dit hein...
      Il FAUT utiliser les paquets de ta distrib!
      La t'as compilés la glib 2.0.0
      Or le gtk que t'as sur ta mandrake ca doit être un ~ 2.4, qui a besoin de glib 2.4!
      et ne le compile pas!
      Ca sert à RIEN
      urpmi glib2-devel ou un truc du genre suffit!
      PS:Je sais ils marquent glib2-2.0 comme nom meme pour glib2-2.4 mais bon faut pas chercher c'est issu du projet gnome/gimp donc faut pas chercher
      PPS:Désolé pour l'abus de html mais la fallait que je me soulage
      • [^] # j'ai écouté !

        Posté par  . Évalué à 1.

        si si j'ai écouter et bien suivis ce que vous m'avez dis c'est au tous début (que j'avais pauser la question sur le forum) que j'avais compiler moi même glib !
        après sous vos consiel j'ai utiliser uniquement les rpm, gtk+-2.0 devel semble bien installer mais c'est donc glib qui semble pauser problème
        car si je tape
        [root@localhost arno]# urpmi glib2-devel
        il me répond ceci :
        Tout est déjà installé

        donc ??
        j'ai du foutre la merde en compilant la glib moi même au début !

        est-ce que mon expliquation est compréhensible ?

        je pense donc désinstaller glib devel avec urmpi, je me demande si c'est ce que je dois faire...

        voila voila bonne journée a tous

        (ps si vous avez un petit conseil pour moi n'hésitez pas!)
        • [^] # Re: j'ai écouté !

          Posté par  . Évalué à 1.

          Comme dit, utilise uniquement les paquets de ta distrib ;) Pour t'assurer que pkg-config ne va pas chercher les trucs que tu as compilé à la main, fais un make uninstall dans les sources des divers trucs que tu as installé toi même... Vire au moins /usr/local/lib/*glib* /usr/local/lib/*gobject* /usr/local/lib/pkgconfig/*.pc et pareil dans /usr/local/include.
  • # ça maaaaaachhhhhhhhhhhhhhhheeeeeeeeeeeeee !!!!!!!!!!!!!!!!!!!

    Posté par  . Évalué à 1.

    ça marche !
    lol
    bah j'ai désinstaller libglib-devel-2.0 avec les gestionnaire de packtage de mandrake 10.1 (je sais pas comment il s'appelle)

    puis je l'ai réinstaller avec urpmi et voila ça fonctionne correctement

    merci de votre aide et puis je retiens la leçon utiliser les packtage !

    a bientot

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.