[Jde] Compilar JDE 4.3
David Lobato
dav.lobato en gmail.com
Dom Oct 26 13:27:21 CET 2008
Impresionante! Buen trabajo Redo, añadiré las modificaciones en cuanto pueda
para seguir probando el sistema de compiación.
Un saludo!
El 24 de octubre de 2008 23:34, redouane kachach <redo.robot en gmail.com>escribió:
> Hola a todos,
>
> Aver, varias cosas. No se si me he dado con el problema pero por lo menos
> he conseguido localizarlo. Los pasos que he dado son los siguientes:
>
> 1) readelf -s jde
>
> Con este comando vemos dos secciones del ejecutable:
>
> Symbol table '*.dynsym*' contains 41 entries:
> Num: Value Size Type Bind Vis Ndx Name
> -- aqui se listan todos los simbolos visibles desde fuera --
>
> Symbol table '*.symtab*' contains 135 entries:
> Num: Value Size Type Bind Vis Ndx Name
> -- aqui se listan todos los simbolos del ejecutable --
>
> Pues bien, el jde resultado de la compilación solo tenia el "myexport" en
> la segunda sección mientras deberia estar
> tambien en la primera ya que es un simbolo que lo usan el resto de los
> modulos.
>
> Y porque no sale el simbolo y no se lista en la parta del *.dynsym ??
>
> *Pues bien, si vamos al directorio base donde esta jde y borramos el
> ejecutable que se genero ahi, y lanzamos de nuevo el make, vemos que el jde
> se genera con la siguiente linea:
>
> /bin/bash ../libtool --tag=CC --mode=link gcc -D
> CONFIGDIR=\"/tmp/jde/share/jdec/conf\" -g -pedantic -Wall -pthread
> -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -I/usr/include/X11 --export-dynamic
> -ldl -o jde jde-jde.o -ldl
> *gcc* -D CONFIGDIR=\"/tmp/jde/share/jdec/conf\" -g -pedantic -Wall
> -pthread -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -I/usr/include/X11 *
> --export-dynamic* -o jde jde-jde.o -ldl
>
> He sobrallado en negrita lo más importante de esta linea. Tal y como
> indica el Makefile.am:
>
> *jde_LDFLAGS = --export-dynamic
>
> *Quiere decir que a la hora del linking esta opcion tiene que estar
> activa. Sin embargo, esta opcion es entendible por el LD y no por el GCC.
> Este ultimo solo entiende "*-rdynamic" *que cuando activada, el gcc pasa
> un "--export-dynamic" a LD para que este haga bien el linkado incluyendo
> todos los simbolos como dinamicos.
>
> Pues cambiando el Makefile, y añadiendo la -rdynamic el "myexport" ya se
> añade en la sección de *.dynsym y el graphics_gtk.so se carga bien y
> encuentra el simbolo.
>
> *Pero entonces, como esta funcion funciona en el 4.2.1 ?? La respuesta es
> porque en el Makefile de esta version la opcion *SI que se pasa al
> compilador*:
>
> jde: jde.o
> $(GCC) $(CFLAGS) *-Wl,--export-dynamic* $(LIB-DIR) -o jde jde.o
> $(OBJS) $(LIBS)
>
> La -Wl le dice al GCC que pase la opcion que le viene en seguida al linker.
> Lo que no se es como hacer para decirle a autotools que pase los *
> jde_ldflags* al linker !!
>
> Saludos,
> Redo.
>
>
> 2008/10/24 redouane kachach <redo.robot en gmail.com>
>
>
>> Hola a todos,
>>
>> Ayer me he instalado la 4.3 y he pasado por los mismo problemas que
>> Gonzalo. Tampoco me he dado con la solucion pero es algo muy raro. Segun
>> estuve leyendo el "dlopen" a la hora de buscar los simbolos empieza primero
>> en el ejecutable. En nuestro caso el jde (ejecutable) es quien difine el
>> simbolo myexport y si con "nm" se puede ver que el simbolo es GLOBAL y esta
>> definino y visible desde fuera (lleva delante un T mayuscula) , y en
>> graphics_gtk.so este simbulo esta como "U" undefined como debria ser.
>>
>> Lo más raro, tengo una compilación de 4.2.1 en la misma maquina donde los
>> simbolos estan en la misma configuracion de arriba pero esta vez el "dlopen"
>> si que encuentra el simbolo myexport y jde arranca sin problemas.
>>
>> Si alguien da con el error, porfavor que explique como lo ha solucionado
>> :-) ..
>>
>> Saludos,
>> Redo.
>>
>>
>>
>>
>>
>> 2008/10/24 Gonzalo Abella <abellagonzalo en gmail.com>
>>
>> Acabo de probar esto último y nada... el mismo fallo de siempre :( . No se
>>> con que más probar.
>>>
>>> Gonzalo
>>>
>>>
>>>
>>> El 23 de octubre de 2008 21:51, José Antonio Santos Cadenas <
>>> jcaden en gsyc.es> escribió:
>>>
>>> Prueba a poner el -Bsymbolic a jde, que es el que exporta ese símbolo, y
>>>> recompílalo. A ver si hay suerte.
>>>>
>>>> Saludos.
>>>>
>>>> Jose.
>>>>
>>>> El Thursday 23 October 2008 21:02:25 Gonzalo Abella escribió:
>>>> > Nada... me sigue dando el mismo problema... He dejado el Makefile.am
>>>> de
>>>> > graphics_gtk de la siguiente manera:
>>>> >
>>>> > *if ENABLE_GRAPHICS_GTK
>>>> > service_LTLIBRARIES = graphics_gtk.la
>>>> > endif
>>>> >
>>>> > graphics_gtk_la_SOURCES = graphics_gtk.c graphics_gtk.h
>>>> > graphics_gtk_la_LDFLAGS = -module -avoid-version
>>>> > -Bsymbolic$(GRAPHICS_GTK_LIBS) graphics_gtk_la_CFLAGS =
>>>> > $(GRAPHICS_GTK_CFLAGS) -I$(top_srcdir)/base dist_conf_DATA =
>>>> > graphics_gtk.conf
>>>> >
>>>> > MAINTAINERCLEANFILES = Makefile.in Makefile*
>>>> >
>>>> > Lanzo otra vez el reconfigure de modo que me cree el Makefile con la
>>>> opción
>>>> > de Bsymbolic. Hago un make clean y un make install, pero sale el mismo
>>>> > error de "undefined symbol: my export".
>>>> >
>>>> > ¿Qué otra cosa podría ser?
>>>> >
>>>> > Gonzalo
>>>> >
>>>> > El 22 de octubre de 2008 17:47, David Lobato <dav.lobato en gmail.com
>>>> >escribió:
>>>> > > Perdona, Bsymbolic es una opcion de enlazado, así que hay que
>>>> añadirla en
>>>> > > graphics_gtk_la_LDFLAGS
>>>> > >
>>>> > >
>>>> > >
>>>> > >
>>>> > > El 22 de octubre de 2008 17:43, David Lobato
>>>> > > <dav.lobato en gmail.com>escribió:
>>>> > >
>>>> > > No hace falta que uses los Makefiles antiguos, modifica los nuevos
>>>> > >
>>>> > >> Makefiles.am
>>>> > >>
>>>> > >> Por ejemplo coge el de gtk y añade en la linea:
>>>> > >> graphics_gtk_la_CFLAGS = $(GRAPHICS_GTK_CFLAGS)
>>>> -I$(top_srcdir)/base
>>>> > >> -Bsymbolic
>>>> > >>
>>>> > >> Y recompila. El Makefile deberia reconstruirse solo.
>>>> > >>
>>>> > >> Si con esto funciona ya sabemos cual es el problema. En ese caso
>>>> ticket
>>>> > >> y me pongo con ello.
>>>> > >>
>>>> > >> David.
>>>> > >>
>>>> > >>
>>>> > >> El 22 de octubre de 2008 17:36, José Antonio Santos Cadenas <
>>>> > >> jcaden en gsyc.es> escribió:
>>>> > >>
>>>> > >> Tienes razón, no me había dado cuenta de la segunda línea del
>>>> error. Es
>>>> > >>
>>>> > >>> cierto
>>>> > >>> que lo que no puede encontrar es un símbolo. Ya nos contarás.
>>>> > >>>
>>>> > >>> Suerte!!
>>>> > >>>
>>>> > >>> Jose.
>>>> > >>>
>>>> > >>> El Wednesday 22 October 2008 17:33:17 Gonzalo Abella escribió:
>>>> > >>> > Seguramente sea esto último que dice David porque el path está
>>>> bien
>>>> > >>> > (si
>>>> > >>>
>>>> > >>> no
>>>> > >>>
>>>> > >>> > estuviese bien me saldría un error diciendo
>>>> > >>> > /home/gon/jde-robot/lib/jdec/graphics_gtk.so:
>>>> > >>> > cannot open shared object file: No such file or directory) y los
>>>> > >>>
>>>> > >>> permisos
>>>> > >>>
>>>> > >>> > los he mirado y están bien. Acabo de comentarlo con Jose María y
>>>> voy
>>>> > >>> > a hacer unas pruebas compilando los esquemas con los Makefiles
>>>> de la
>>>> > >>>
>>>> > >>> 4.2.1
>>>> > >>>
>>>> > >>> > para ver si se arregla el problema.
>>>> > >>> >
>>>> > >>> > En cuanto tenga algo os comento.
>>>> > >>> >
>>>> > >>> > Gonzalo
>>>> > >>> >
>>>> > >>> > El 22 de octubre de 2008 17:17, David Lobato <
>>>> dav.lobato en gmail.com
>>>> > >>> >
>>>> > >>> >escribió:
>>>> > >>> > > No he puesto la opción -Bsymbolic que en los makefiles
>>>> antiguos si
>>>> > >>> > > estaba. No se si esto puede causar algún problema.
>>>> > >>> > > Si no lo consigues con la solución de José Antonio prueba a
>>>> pasar
>>>> > >>>
>>>> > >>> esta
>>>> > >>>
>>>> > >>> > > opción (no me acuerdo en este momento como, tendría que
>>>> > >>> > > mirarlo....)
>>>> > >>> > >
>>>> > >>> > > El 22 de octubre de 2008 17:01, Gonzalo Abella
>>>> > >>> > > <abellagonzalo en gmail.com>escribió:
>>>> > >>> > >
>>>> > >>> > > Perfecto!! Ya lo tengo en mi home. Ahora el problema me viene
>>>> al
>>>> > >>>
>>>> > >>> ejecutar
>>>> > >>>
>>>> > >>> > >> un esquema cualquiera. Al cargar graphics_gtk me sale esto:
>>>> > >>> > >>
>>>> > >>> > >> gon en moriles:~/config-jde$ ../jdec/base/jde conf-project.conf
>>>> > >>> > >> jdec 4.3-svn
>>>> > >>> > >> Configuration from conf-project.conf
>>>> > >>> > >> Reading configuration...
>>>> > >>> > >> graphics_gtk driver loaded (driver 0)
>>>> > >>> > >> Loading GTK support...
>>>> > >>> > >> ../jdec/base/jde: symbol lookup error:
>>>> > >>> > >> /home/gon/jde-robot/lib/jdec/services/graphics_gtk.so:
>>>> undefined
>>>> > >>>
>>>> > >>> symbol:
>>>> > >>> > >> myexport
>>>> > >>> > >>
>>>> > >>> > >>
>>>> > >>> > >> Según creo es del linkado, pero no se como arreglarlo.
>>>> > >>> > >>
>>>> > >>> > >> Un saludo
>>>> > >>> > >> Gonzalo
>>>> > >>> > >>
>>>> > >>> > >>
>>>> > >>> > >>
>>>> > >>> > >> El 21 de octubre de 2008 17:15, David Lobato
>>>> > >>> > >> <dav.lobato en gmail.com>escribió:
>>>> > >>> > >>
>>>> > >>> > >> No queda otra que instalarlo en algún sitio para poder
>>>> usarlo, ya
>>>> > >>>
>>>> > >>> que
>>>> > >>>
>>>> > >>> > >> los
>>>> > >>> > >>
>>>> > >>> > >>> .so están cada uno por su lado dentro de los directorios de
>>>> > >>> > >>> driver, schemas y demás. Usa la variable prefix que se pasa
>>>> al
>>>> > >>> > >>> configure
>>>> > >>>
>>>> > >>> con
>>>> > >>>
>>>> > >>> > >>> algún directorio en tu cuenta o en el tmp.
>>>> > >>> > >>>
>>>> > >>> > >>> Un saludete.
>>>> > >>> > >>> David.
>>>> > >>> > >>>
>>>> > >>> > >>> 2008/10/21 Gonzalo Abella <abellagonzalo en gmail.com>
>>>> > >>> > >>>
>>>> > >>> > >>>> Buenas,
>>>> > >>> > >>>>
>>>> > >>> > >>>> estoy empezando a usar jde 4.3, pero no consigo compilarlo.
>>>> Sigo
>>>> > >>>
>>>> > >>> las
>>>> > >>>
>>>> > >>> > >>>> instrucciones que hay en un mail de la lista de hace
>>>> algunas
>>>> > >>>
>>>> > >>> semanas:
>>>> > >>> > >>>> $> autoreconf -vfi
>>>> > >>> > >>>> --> Genera el configure. Si falla revisad que tenéis
>>>> > >>> > >>>> automake-1.9, autoconf y libtools
>>>> > >>> > >>>>
>>>> > >>> > >>>> $>./configure --with-player=<path de player si no es
>>>> /usr/local>
>>>> > >>> > >>>> --with-gazebo=<path de gazebo si no es /usr/local>
>>>> > >>> > >>>> --prefix=<path donde quereis instalarlo>
>>>> > >>> > >>>>
>>>> > >>> > >>>> $> make install
>>>> > >>> > >>>> [/copia]
>>>> > >>> > >>>>
>>>> > >>> > >>>>
>>>> > >>> > >>>> Pero en vez de hacer el "make install" hago el un "make".
>>>> Lo
>>>> > >>>
>>>> > >>> compila,
>>>> > >>>
>>>> > >>> > >>>> pero no me crea los ".so" o si los crea no tengo ni idea de
>>>> > >>> > >>>> donde
>>>> > >>>
>>>> > >>> los
>>>> > >>>
>>>> > >>> > >>>> deja. ¿Sabéis que puede ser? No me da errores de
>>>> compilación.
>>>> > >>> > >>>>
>>>> > >>> > >>>> Un saludo
>>>> > >>> > >>>> Gonzalo
>>>> > >>> > >>>>
>>>> > >>> > >>>> _______________________________________________
>>>> > >>> > >>>> Jde-developers mailing list
>>>> > >>> > >>>> Jde-developers en gsyc.es
>>>> > >>> > >>>>
>>>> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developer
>>>> > >>> > >>>>s
>>>> > >>>
>>>> > >>> _______________________________________________
>>>> > >>> Jde-developers mailing list
>>>> > >>> Jde-developers en gsyc.es
>>>> > >>> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>>>> > >
>>>> > > _______________________________________________
>>>> > > Jde-developers mailing list
>>>> > > Jde-developers en gsyc.es
>>>> > > http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>>>>
>>>>
>>>> _______________________________________________
>>>> Jde-developers mailing list
>>>> Jde-developers en gsyc.es
>>>> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>>>>
>>>
>>>
>>> _______________________________________________
>>> Jde-developers mailing list
>>> Jde-developers en gsyc.es
>>> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>>>
>>>
>>
>
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20081026/5ebd60cb/attachment-0001.htm
More information about the Jde-developers
mailing list