OVH Cloud OVH Cloud

Erreur de compile pango

3 réponses
Avatar
Fauberteau Frédéric
Bonsoir,
j'essaye de compiler la suite glib/atk/pango/gtk+ en version 2.4 sur ma
distrib qui est construite sur la version 2.2. Pour ne pas créer de
conflit sur ma config, je compile ces bibliothèques dans /usr/local. Je
compile glib sans problème. J'ajoute
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig et
LD_LIBRARY_PATH=/usr/local/lib pour qu'atk trouve le nouveau glib :
aucun problème :-)
Mais lorsque je passe à la compilation de pango, make échoue sur un
message d'erreur. Il semblerait que des définitions de fonctions n'aient
pas été trouvée ... Pourtant, on voit bien les -L/usr/local/lib

-----------------------------------------------------------------------
/bin/sh ../libtool --mode=link gcc -g -O2 -Wall -o pango-querymodules
querymodules.o libpangox-1.0.la libpangoxft-1.0.la libpangoft2-1.0.la
libpango-1.0.la -L/usr/local/lib -lgobject-2.0 -lgmodule-2.0 -ldl
-lglib-2.0
gcc -g -O2 -Wall -o .libs/pango-querymodules querymodules.o
./.libs/libpangox-1.0.so -L/usr/local/lib -L/usr/X11R6/lib
./.libs/libpangoxft-1.0.so
/home/triaxx/rpm/SOURCES/pango-1.4.0/pango/.libs/libpangoft2-1.0.so
-lXft -lX11 -lXrender ./.libs/libpangoft2-1.0.so
/home/triaxx/rpm/SOURCES/pango-1.4.0/pango/.libs/libpango-1.0.so
/usr/lib/libfontconfig.so /usr/lib/libexpat.so /usr/lib/libfreetype.so
-lz /usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so
/usr/lib/libglib-2.0.so ./.libs/libpango-1.0.so
/usr/local/lib/libgobject-2.0.so /usr/local/lib/libgmodule-2.0.so -ldl
/usr/local/lib/libglib-2.0.so -Wl,--rpath
-Wl,/home/triaxx/rpm/tmp/usr/lib -Wl,--rpath -Wl,/usr/local/lib

/home/triaxx/rpm/SOURCES/pango-1.4.0/pango/.libs/libpangoft2-1.0.so:
undefined reference to `g_type_instance_get_private'

/home/triaxx/rpm/SOURCES/pango-1.4.0/pango/.libs/libpangoft2-1.0.so:
undefined reference to `g_type_class_add_private'

/home/triaxx/rpm/SOURCES/pango-1.4.0/pango/.libs/libpango-1.0.so:
undefined reference to `g_unichar_get_mirror_char'

collect2: ld returned 1 exit status
-----------------------------------------------------------------------

J'espère que vous (oui, vous, grand manitou du système Linux) pourrez
cerner le problème et m'aider.
Merci d'avance :-)

PS : par la même occaz, je construis des packages pour ma distrib de ces
libs, histoire de pouvoir rendre service aux autres développeur sous
gtk+ qui veulent profiter de cette nouvelle version.

--
Frédéric Fauberteau

3 réponses

Avatar
Rakotomandimby (R12y) Mihamina
( Thu, 09 Dec 2004 23:36:25 +0100 ) Fauberteau Frédéric :

Bonsoir,


Bonsoir

/home/triaxx/rpm/SOURCES/pango-1.4.0/pango/.libs/libpango-1.0.so:
undefined reference to `g_unichar_get_mirror_char'


http://www.spinics.net/lists/gtk/msg03729.html
--
ASPO Infogérance - http://aspo.rktmb.org/activites/infogerance
Unofficial FAQ fcolc - http://faq.fcolc.eu.org/
Linux User Group sur Orléans et alentours.
Tél: + 33 2 38 76 43 65 (France)

Avatar
ericb
Bonsoir,

( Thu, 09 Dec 2004 23:36:25 +0100 ) Fauberteau Frédéric :


Bonsoir,



Bonsoir


/home/triaxx/rpm/SOURCES/pango-1.4.0/pango/.libs/libpango-1.0.so:
undefined reference to `g_unichar_get_mirror_char'



http://www.spinics.net/lists/gtk/msg03729.html


Je ne suis pas sûr d'avoir vu la réponse dans ce fil (j'ai peut-être mal
lu), alors je la donne :

c'est le fichier gtype.h qui n'est pas trouvé.

Pour le trouver , j'ai fait :

egrep -H -r "g_type_instance_get_private" /usr/include/*

Et la réponse, c'était :

/usr/include/glib-2.0/gobject/gtype.h:#define
G_TYPE_INSTANCE_GET_PRIVATE(instance, g_type, c_type) ((c_type*)
g_type_instance_get_private ((GTypeInstance*) (instance), (g_type)))
/usr/include/glib-2.0/gobject/gtype.h:gpointer
g_type_instance_get_private (GTypeInstance *instance,

Ensuite, pour savoir s'il est sur ton disque :

find /usr/include -name "gtype.h" # -print n'est pas obligatoire....

Si pas trouvé, ressayer avec /usr/local/include ...ou un autre chemin...


Enfin, il faut ajouter

-I/chemin_correspondant dans le bon makefile (?) par exemple..


Mais peut-être que Glib-2.4 n'est pas encore installée, et qu'il
faudrait commencer par elle ?


Une dernière chose : je crois que ce n'est pas le bon forum pour poser
cette question...



Cordialement,
eric bachard


--
eric bachard
French OpenOffice.org Community contributor (build of french releases
for Linux PPC and Mac OS X / X11)
See : <http://fr.openoffice.org>


Avatar
Fauberteau Frédéric
Je ne suis pas sûr d'avoir vu la réponse dans ce fil (j'ai peut-être mal
lu), alors je la donne :

c'est le fichier gtype.h qui n'est pas trouvé.

Pour le trouver , j'ai fait :

egrep -H -r "g_type_instance_get_private" /usr/include/*

Et la réponse, c'était :

/usr/include/glib-2.0/gobject/gtype.h:#define
G_TYPE_INSTANCE_GET_PRIVATE(instance, g_type, c_type) ((c_type*)
g_type_instance_get_private ((GTypeInstance*) (instance), (g_type)))
/usr/include/glib-2.0/gobject/gtype.h:gpointer
g_type_instance_get_private (GTypeInstance *instance,

Ensuite, pour savoir s'il est sur ton disque :

find /usr/include -name "gtype.h" # -print n'est pas obligatoire....

Si pas trouvé, ressayer avec /usr/local/include ...ou un autre chemin...
En fait, j'ai bien compilé glib-2.4 dans /usr/local (fait exprès). Voilà

le petit test que j'ai fait : j'ai fait des copies des .pc de pkg-config
de /usr/local/lib/pkgconfig vers /usr/lib/pkgconfig en les renomant en
glib-2.4 ...
Lorsque que je compile ça, ça marche :

#include <glib.h>

int main (void)
{
int *i = (int*) g_malloc (sizeof (int));
return 0;
}

mais pas ça :

#include <glib-object.h>

int main (void)
{
g_type_class_add_private (NULL, 1);
return 0;
}

... undefined reference to 'g_type_class_add_private' :-(

Enfin, il faut ajouter

-I/chemin_correspondant dans le bon makefile (?) par exemple...
je vais essayé.


Mais peut-être que Glib-2.4 n'est pas encore installée, et qu'il
faudrait commencer par elle ?
sisi


Une dernière chose : je crois que ce n'est pas le bon forum pour poser
cette question...
désolé, quel serait ce forum ?


Cordialement,
eric bachard
merci.