Forum Linux.mandriva Compiler un programme gtk2 sur mandriva

Posté par  (site web personnel) .
Étiquettes : aucune
0
9
déc.
2005
Bonjour,
Je n'arrive pas a compiler le programme suivant :
http://www.gtk-fr.org/wakka.php?wiki=LesFenetres

Avec la commande:
gcc -o test test.c `pkg-config --cflags --libs gtk+-2.0`

I have:
[tsubasa@localhost test]$ gcc -o test test.c `pkg-config --cflags --libs gtk+-2.0`
Package xrender was not found in the pkg-config search path.
Perhaps you should add the directory containing `xrender.pc'
to the PKG_CONFIG_PATH environment variable
Package 'xrender', required by 'cairo', not found
test.c:2:21: error: gtk/gtk.h: Aucun fichier ou répertoire de ce type
test.c:4: error: syntax error before '*' token
test.c: In function 'main':
test.c:9: error: 'GtkWidget' undeclared (first use in this function)
test.c:9: error: (Each undeclared identifier is reported only once
test.c:9: error: for each function it appears in.)
test.c:9: error: 'pWindow' undeclared (first use in this function)
test.c:14: error: 'GTK_WINDOW_TOPLEVEL' undeclared (first use in this function)
test.c:16: error: 'GTK_WIN_POS_CENTER' undeclared (first use in this function)
test.c: At top level:
test.c:33: error: syntax error before '*' token


I have libGtk+-2.0-devel and cairo devel.
I dont have a xrender.pc file in /usr/lib/pkgconfig/

This mine pkgconfig:
[tsubasa@localhost pkgconfig]$ ls
alsa.pc gmodule-no-export-2.0.pc libxml-2.0.pc
atk.pc gmodule.pc libxslt.pc
audiofile.pc gnome-mime-data-2.0.pc mad.pc
blkid.pc gobject-2.0.pc neon.pc
cairo.pc gok-1.0.pc ogg.pc
com_err.pc gstreamer-0.8.pc openssl.pc
e2p.pc gstreamer-control-0.8.pc pangocairo.pc
esound.pc gthread-2.0.pc pangoft2.pc
ext2fs.pc gthread.pc pango.pc
fluidsynth.pc gtk+-2.0.pc pangoxft.pc
fontconfig.pc gtkcairo.pc pangox.pc
freetype2.pc gtkextra-2.0.pc qt-mt.pc@
gamin.pc gtkgl-2.0.pc samplerate.pc
gdk-2.0.pc gtk+.pc shared-mime-info.pc
gdk.pc gtk+-x11-2.0.pc sndfile.pc
gdk-pixbuf-2.0.pc jack.pc sqlite3.pc
gdk-pixbuf-xlib-2.0.pc lcms.pc ss.pc
gdk-x11-2.0.pc libart-2.0.pc taglib.pc
glib-2.0.pc libexslt.pc uuid.pc
glib.pc libidn.pc vorbisenc.pc
glitz-glx.pc libpcre.pc vorbisfile.pc
glitz.pc libpixman.pc vorbis.pc
gmodule-2.0.pc libpng12.pc xrender.pc.old
gmodule-export-2.0.pc libpng.pc@
[tsubasa@localhost pkgconfig]$


What's wrong ??

PS: J'arrive a compiler sur une kubuntu
  • # re

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

    Dsl, j'ai copié collé une partie que j'ai posté sur le forum mandriva anglais, et j'ai rajouté ici des détails en francais .... : / Mais j'ai pas fais gaffe au milieu lol
  • # savoir lire, c'est mieux.

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

    error: gtk/gtk.h: Aucun fichier ou répertoire de ce type
    installe les headers de gtk, ça ira mieux.

    (generalement, c'est un paquet dugenre 'gtk-dev')

    Tout homme qui dirige, qui fait quelque chose, a contre lui ceux qui voudraient faire la même chose, ceux qui font précisément le contraire, et surtout la grande armée des gens d'autant plus sévères qu'ils ne font rien du tout. -- Jules Claretie

    • [^] # Re: savoir lire, c'est mieux.

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

      J'ai marque que je l'ai installé...

      [root@localhost tsubasa]# locate gtk.h
      /usr/share/gtk-doc/html/gtk/gtk.html
      /usr/include/gtk-2.0/gtk/gtk.h
      /usr/include/gtk-1.2/gtk/gtk.h
      [root@localhost tsubasa]#
      • [^] # include path

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

        teste ceci:
        $ pkg-config --cflags gtk+-2.0

        pour voir si il y a un path d'indiqué pour les includes de gtk+-2.0 et vérifie que ce path (-I /usr/include...) est le même que celui de ta librairie. Si ce n'est pas le cas, c'est que ton paquet est foireux, ou que tu ne l'a pas bien installé. ajoutes donc ceci:

        -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include

        dans ta ligne de compilation.

        Tout homme qui dirige, qui fait quelque chose, a contre lui ceux qui voudraient faire la même chose, ceux qui font précisément le contraire, et surtout la grande armée des gens d'autant plus sévères qu'ils ne font rien du tout. -- Jules Claretie

        • [^] # Re: include path

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

          [tsubasa@localhost ~]$ pkg-config --cflags gtk+-2.0
          Package xrender was not found in the pkg-config search path.
          Perhaps you should add the directory containing `xrender.pc'
          to the PKG_CONFIG_PATH environment variable
          Package 'xrender', required by 'cairo', not found
          [tsubasa@localhost ~]$

          :/, je n'ai pas de xrender.pc ce qui apparement le bloc ...

          Pourtant j'ai:
          [tsubasa@localhost ~]$ locate xrender
          /usr/include/cairo/cairo-xlib-xrender.h
          [tsubasa@localhost ~]$


          J'ai desinstaller gtk2 devel et cairo devel pour les reinstaller mais c'est pareil. Le paquetage est plus que douteux. Car avec la meme demarche j'y arrive sur kubuntu :(
          • [^] # Re: include path

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

            Decidemment c'est la croix et la banniere ce truc....


            [tsubasa@localhost esportpanel2]$ gcc -o test test.c -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
            /home/tsubasa/tmp/ccL3tRxr.o: In function `main':
            test.c:(.text+0x29): undefined reference to `gtk_init'
            test.c:(.text+0x36): undefined reference to `gtk_window_new'
            test.c:(.text+0x41): undefined reference to `gtk_window_get_type'
            test.c:(.text+0x4e): undefined reference to `g_type_check_instance_cast'
            test.c:(.text+0x5c): undefined reference to `gtk_window_set_position'
            test.c:(.text+0x64): undefined reference to `gtk_window_get_type'
            test.c:(.text+0x71): undefined reference to `g_type_check_instance_cast'
            test.c:(.text+0x87): undefined reference to `gtk_window_set_default_size'
            test.c:(.text+0x8f): undefined reference to `gtk_window_get_type'
            test.c:(.text+0x9c): undefined reference to `g_type_check_instance_cast'
            test.c:(.text+0xad): undefined reference to `gtk_window_set_title'
            test.c:(.text+0xc3): undefined reference to `g_type_check_instance_cast'
            test.c:(.text+0xdb): undefined reference to `g_signal_connect_data'
            test.c:(.text+0xe9): undefined reference to `gtk_widget_show'
            test.c:(.text+0xf1): undefined reference to `gtk_main'
            /home/tsubasa/tmp/ccL3tRxr.o: In function `OnDestroy':
            test.c:(.text+0x106): undefined reference to `gtk_main_quit'
            collect2: ld returned 1 exit status


            Si quelqu'un a une idée je suis preneur ..
            • [^] # Re: include path

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

              Ok, dans le cairo.pc j'ai enlever xrender :


              prefix=/usr
              exec_prefix=/usr
              libdir=/usr/lib
              includedir=/usr/include

              Name: cairo
              Description: Multi-platform 2D graphics library
              Version: 1.0.0

              Requires.private: freetype2 >= 8.0.2 fontconfig xrender libpng12
              Libs: -L${libdir} -lcairo
              Cflags: -I${includedir}/cairo


              Pour avoir ceci:


              prefix=/usr
              exec_prefix=/usr
              libdir=/usr/lib
              includedir=/usr/include

              Name: cairo
              Description: Multi-platform 2D graphics library
              Version: 1.0.0

              Requires.private: freetype2 >= 8.0.2 fontconfig libpng12
              Libs: -L${libdir} -lcairo
              Cflags: -I${includedir}/cairo


              Et la ca marche avec cette commande:
              gcc -o test test.c `pkg-config --cflags --libs gtk+-2.0`

              Qui est senser fournir le xrender.pc ? quel package ?
              • [^] # xrender chez moi

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

                $ apt-file search $(locate xrender.pc)
                libxrender-dev: usr/lib/pkgconfig/xrender.pc

                Tout homme qui dirige, qui fait quelque chose, a contre lui ceux qui voudraient faire la même chose, ceux qui font précisément le contraire, et surtout la grande armée des gens d'autant plus sévères qu'ils ne font rien du tout. -- Jules Claretie

  • # XRender sur Mandriva 2006.0

    Posté par  . Évalué à 1.

    Le fichier pkgconfig de xrender est: /usr/lib/pkgconfig/xrender.pc

    Si ce fichier n'est pas présent sur ton système: urpmi libxorg-x11-devel

Suivre le flux des commentaires

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