[Jderobot-dev] problemas compilando BASIC_COMPONENT
Julio Vega
julio.vega en urjc.es
Jue Feb 16 00:32:28 CET 2012
Aunque sea tarde, lo comento y ahà queda para la posteridad.
Creo que ya lo tienes solucinado, pero bueno, la solución más
elegante es indicarle al enlazador de librerÃas dinámicas (más conocido
como ldd) que busque en la ruta que quieres (en este caso, en la de
gearbox).
El enlazador busca en el fichero "/etc/ld.so.conf", que tÃpicamente
tiene el siguiente contenido:
include /etc/ld.so.conf.d/*.conf
include /usr/local/lib
Si te fijas, está buscando en todos los ficheros ".conf" que haya en
la ruta "/etc/ld.so.conf.d/". Con que crees un fichero en esta ruta que
se llame, por ejemplo, "gearbox.conf", y cuyo contenido sea:
/usr/lib/gearbox/
...asunto arreglado. Eso sÃ, no te olvides actualizar el enlazador
con la instrucción "$sudo ldconfig".
Saludos,
Julio
On 12-02-15 04:58 PM, JoseMaria wrote:
> Una cosilla más que puede ayudar: En una noticia del blog [1] están las
> trasparencias de una charla que dio Julio Vega sobre herramientas de
> programación: makefiles, depurador gdb, etc muy útiles para desarrollar
> aplicaciones con jderobot. Los Makefiles son vitales.
>
> Ãnimo,
>
> JoseMaria
> [1] http://blog.jderobot.org/?m=200905
> On Tue, 2012-02-14 at 16:08 +0100, JoseMaria wrote:
>> Julio,
>>
>> mirando la troncho traza que pusiste, te está compilando todo y en
>> enlazador (/usr/bin/ld) se queja de que al enlazar para construir el
>> ejecutable no encuentra la biblioteca respectivas, que con ese prefijo
>> tenÃa pinta de GearBox:
>>
>> /usr/bin/ld: warning: libGbxUtilAcfr.so.1.0.0, needed
>> by /usr/local/lib/jderobot/libJderobotIce.so, not found (try using
>> -rpath or -rpath-link)
>>
>> /usr/bin/ld: warning: libGbxIceUtilAcfr.so.1.0.0, needed
>> by /usr/local/lib/jderobot/libJderobotIce.so, not found (try using
>> -rpath or -rpath-link)
>>
>> Echa un ojo please a lo que es la compilación, el enlazado, la
>> herramienta Make y las opciones adecuadas del compilador g++ (por
>> ejemplo -Idirectorio para incluir un directorio en los sitios en los que
>> busca cabeceras, o -Ldirectorio para incluirlo en los sitios en los que
>> busca bibliotecas, etc). Te ayudará a poner las opciones adecuadas en
>> los ficheros Makefile y a localizar pronto dónde está el fallo cuando se
>> queje: que si no encuentra tal cabecera al compilar, que si no encuentra
>> tal biblioteca al enlazar...
>>
>> Ãnimo,
>>
>> JoseMaria
>> On Tue, 2012-02-14 at 14:12 +0100, Julio Guillén wrote:
>>> Efectivamente diste en el clavo ! Justo habÃa escrito un mail
>>> comentando que habÃa trasteado con CUDA y modifiqué dicho archivo.
>>>
>>> Mil gracias por la pronta atención.
>>>
>>> El 14 de febrero de 2012 14:11, Alejandro Hernández
>>> <ahcorde en gmail.com> escribió:
>>> Tiene pinta de ser Gearbox
>>>
>>>
>>> edita ~/.bashrc y añade al final
>>>
>>>
>>> export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/gearbox/
>>>
>>>
>>> guarda los cambios y resetea los terminales.
>>>
>>>
>>> Ãlex.
>>>
>>> 2012/2/14 Julio Guillén<julio.guillen en gmail.com>
>>> Desde mi equipo de sobremesa he intentado compilar
>>> BASIC_COMPONENT (la versión del SVN de jderobot y la
>>> de Mikel, por separado) y no he sido capaz de
>>> lograrlo. Utilizo el Makefile-basic_component
>>> redactado por Mikel y me da el siguiente mensaje de
>>> error de compilación:
>>>
>>>
>>> jguillen en ubuntu:~/jderobot/basic_component$ make -f
>>> Makefile-basic_component
>>> g++ -I /usr/local/include/jderobot `pkg-config
>>> --cflags opencv` `pkg-config --cflags gtkmm-2.4
>>> libglademm-2.4 gthread-2.0 libgnomecanvas-2.0
>>> libgnomecanvasmm-2.6` `pkg-config --cflags
>>> gtkglextmm-1.2` -c -o control.o control.cpp
>>> g++ -I /usr/local/include/jderobot `pkg-config
>>> --cflags opencv` `pkg-config --cflags gtkmm-2.4
>>> libglademm-2.4 gthread-2.0 libgnomecanvas-2.0
>>> libgnomecanvasmm-2.6` `pkg-config --cflags
>>> gtkglextmm-1.2` -c -o camera.o camera.cpp
>>> g++ -I /usr/local/include/jderobot `pkg-config
>>> --cflags opencv` `pkg-config --cflags gtkmm-2.4
>>> libglademm-2.4 gthread-2.0 libgnomecanvas-2.0
>>> libgnomecanvasmm-2.6` `pkg-config --cflags
>>> gtkglextmm-1.2` -c -o basic_component.o
>>> basic_component.cpp
>>> g++ -I /usr/local/include/jderobot `pkg-config
>>> --cflags opencv` `pkg-config --cflags gtkmm-2.4
>>> libglademm-2.4 gthread-2.0 libgnomecanvas-2.0
>>> libgnomecanvasmm-2.6` `pkg-config --cflags
>>> gtkglextmm-1.2` -c -o API.o API.cpp
>>> g++ -I /usr/local/include/jderobot `pkg-config
>>> --cflags opencv` `pkg-config --cflags gtkmm-2.4
>>> libglademm-2.4 gthread-2.0 libgnomecanvas-2.0
>>> libgnomecanvasmm-2.6` `pkg-config --cflags
>>> gtkglextmm-1.2` -c -o gui.o gui.cpp
>>> gui.cpp: In constructor
>>> ‘basic_component::Gui::Gui(basic_component::Api*)’:
>>> gui.cpp:79: warning: deprecated conversion from string
>>> constant to ‘char*’
>>> gui.cpp:81: warning: deprecated conversion from string
>>> constant to ‘char*’
>>> g++ -I /usr/local/include/jderobot `pkg-config
>>> --cflags opencv` `pkg-config --cflags gtkmm-2.4
>>> libglademm-2.4 gthread-2.0 libgnomecanvas-2.0
>>> libgnomecanvasmm-2.6` `pkg-config --cflags
>>> gtkglextmm-1.2` -c -o canvasTeleoperateCameras.o
>>> canvasTeleoperateCameras.cpp
>>> g++ -I /usr/local/include/jderobot `pkg-config
>>> --cflags opencv` `pkg-config --cflags gtkmm-2.4
>>> libglademm-2.4 gthread-2.0 libgnomecanvas-2.0
>>> libgnomecanvasmm-2.6` `pkg-config --cflags
>>> gtkglextmm-1.2` -c -o canvasTeleoperateControl.o
>>> canvasTeleoperateControl.cpp
>>> g++ -I /usr/local/include/jderobot `pkg-config
>>> --cflags opencv` `pkg-config --cflags gtkmm-2.4
>>> libglademm-2.4 gthread-2.0 libgnomecanvas-2.0
>>> libgnomecanvasmm-2.6` `pkg-config --cflags
>>> gtkglextmm-1.2` -c -o canvasLaser.o canvasLaser.cpp
>>> libtool --mode=link g++ -g -O -o basic_component
>>> control.o gui.o camera.o API.o basic_component.o
>>> canvasTeleoperateCameras.o canvasTeleoperateControl.o
>>> canvasLaser.o /usr/local/lib/jderobot/libJderobotIce.la /usr/local/lib/jderobot/libJderobotUtil.la /usr/local/lib/jderobot/libcolorspacesmm.la /usr/local/lib/jderobot/libJderobotInterfaces.la /usr/local/lib/jderobot/libprogeo.la /usr/local/lib/jderobot/libpioneer.la `pkg-config --libs gtkmm-2.4 libglademm-2.4 gthread-2.0 libgnomecanvas-2.0 libgnomecanvasmm-2.6` `pkg-config --libs opencv` -lgsl -lgslcblas `pkg-config --libs gtkglextmm-1.2` -lGL -lGLU -lglut
>>> libtool: link: g++ -g -O -o basic_component control.o
>>> gui.o camera.o API.o basic_component.o
>>> canvasTeleoperateCameras.o canvasTeleoperateControl.o
>>> canvasLaser.o -pthread -Wl,--export-dynamic
>>> -pthread /usr/local/lib/jderobot/libJderobotIce.so /usr/local/lib/jderobot/libJderobotUtil.so /usr/local/lib/jderobot/libcolorspacesmm.so /usr/local/lib/jderobot/libJderobotInterfaces.so /usr/local/lib/jderobot/libprogeo.so /usr/local/lib/jderobot/libpioneer.so /usr/lib/libglademm-2.4.so /usr/lib/libglade-2.0.so /usr/lib/libxml2.so /usr/lib/libgnomecanvasmm-2.6.so /usr/lib/libgnomecanvas-2.so /usr/lib/libart_lgpl_2.so -lcv -lhighgui -lcvaux -lml -lcxcore -lgsl -lgslcblas /usr/lib/libgtkglextmm-x11-1.2.so /usr/lib/libgdkglextmm-x11-1.2.so /usr/lib/libgtkglext-x11-1.0.so /usr/lib/libgtkmm-2.4.so /usr/lib/libgdkglext-x11-1.0.so -lXmu -lXt -lSM -lICE /usr/lib/libpangox-1.0.so -lX11 /usr/lib/libatkmm-1.6.so /usr/lib/libgdkmm-2.4.so /usr/lib/libgiomm-2.4.so /usr/lib/libpangomm-1.4.so /usr/lib/libgtk-x11-2.0.so /usr/lib/libglibmm-2.4.so /usr/lib/libcairomm-1.0.so /usr/lib/libsigc-2.0.so /usr/lib/libgdk-x11-2.0.so /usr/lib/libatk-1.0.so /usr/lib/libgio-2.0.so /usr/lib/libpangoft2-1.0.so /usr/lib/libgdk_pixbuf-2.0.so -lm /usr/lib/libpangocairo-1.0.so /usr/lib/libcairo.so /usr/lib/libpango-1.0.so /usr/lib/libfreetype.so -lfontconfig /usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so /usr/lib/libgthread-2.0.so -lrt /usr/lib/libglib-2.0.so -lGL -lGLU -lglut -pthread -Wl,-rpath -Wl,/usr/local/lib/jderobot -Wl,-rpath -Wl,/usr/local/lib/jderobot
>>> /usr/bin/ld: warning: libGbxUtilAcfr.so.1.0.0, needed
>>> by /usr/local/lib/jderobot/libJderobotIce.so, not
>>> found (try using -rpath or -rpath-link)
>>> /usr/bin/ld: warning: libGbxIceUtilAcfr.so.1.0.0,
>>> needed by /usr/local/lib/jderobot/libJderobotIce.so,
>>> not found (try using -rpath or -rpath-link)
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `VTT for gbxiceutilacfr::SafeThread'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `typeinfo for gbxutilacfr::TrivialTracer'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::infrastructureFinalising()'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `gbxiceutilacfr::Thread::waitForStop()'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::setMaxHeartbeatInterval(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `gbxutilacfr::Exception::Exception(char
>>> const*, char const*, std::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >
>>> const&)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::subsystemStatus(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `typeinfo for gbxutilacfr::Exception'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `typeinfo for gbxiceutilacfr::SafeThread'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::setSubsystemStatus(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gbxutilacfr::SubsystemState, gbxutilacfr::SubsystemHealth, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::removeSubsystem(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::addSubsystem(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, gbxutilacfr::SubsystemType)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::setSubsystemType(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gbxutilacfr::SubsystemType)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::heartbeat(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::ok(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::infrastructureWorking()'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialTracer::warning(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialTracer::error(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialTracer::TrivialTracer(int, int,
>>> int, int)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::infrastructureState()'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `gbxutilacfr::Exception::~Exception()'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::finalising(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `VTT for gbxiceutilacfr::Thread'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialTracer::debug(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::message(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::subsystems()'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialTracer::info(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxiceutilacfr::stopAndJoin(IceUtil::Handle<gbxiceutilacfr::Thread> const&)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::initialising(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::infrastructureInitialising()'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `gbxiceutilacfr::Thread::Thread()'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `typeinfo for gbxiceutilacfr::Thread'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::TrivialStatus(gbxutilacfr::Tracer&, bool, bool, bool, bool, bool)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `gbxutilacfr::TrivialStatus::process()'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialTracer::verbosity(gbxutilacfr::TraceType, gbxutilacfr::DestinationType) const'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `non-virtual thunk to
>>> gbxiceutilacfr::Thread::isStopping()'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxiceutilacfr::SafeThread::SafeThread(gbxutilacfr::Tracer&)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::warning(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `typeinfo for gbxutilacfr::TrivialStatus'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `gbxutilacfr::Exception::Exception(char
>>> const*, char const*, std::basic_string<char,
>>> std::char_traits<char>, std::allocator<char> >
>>> const&)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::working(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxiceutilacfr::checkedSleep(gbxutilacfr::Stoppable*,
>>> int, int)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `vtable for gbxiceutilacfr::Thread'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `vtable for gbxiceutilacfr::SafeThread'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialTracer::print(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `gbxutilacfr::Exception::~Exception()'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `gbxiceutilacfr::Thread::isStopping()'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to `gbxiceutilacfr::SafeThread::run()'
>>> /usr/local/lib/jderobot/libJderobotIce.so: undefined
>>> reference to
>>> `gbxutilacfr::TrivialStatus::fault(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
>>> collect2: ld returned 1 exit status
>>> make: *** [basic_component] Error 1
>>>
>>>
>>>
>>> _______________________________________________
>>> Jde-developers mailing list
>>> Jde-developers en gsyc.es
>>> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>>>
>>>
>>>
>>>
>>>
>>>
>>> --
>>> Logo
>>> Julio Guillén GarcÃa
>>> Software Team Lead
>>> +34 657082696 ·
>>> julio.guillen en gmail.com
>>>
>>>
>>> Future Vehicles and Entrepreneurs
>>> E.T.S.I. Navales - Aula Fuve-E ·
>>> Avenida Arco de la Victoria s/n
>>> 28040 Madrid
>>> www.fuve-e.es
>>>
>>> facebook twitter linkedIn
>>> eco No me imprimas si no es
>>> necesario. Protejamos el medio
>>> ambiente
>>>
>>> Este correo electrónico y, en su
>>> caso, cualquier fichero anexo al
>>> mismo, contiene información de
>>> carácter confidencial
>>> exclusivamente dirigida a su
>>> destinatario o destinatarios. Queda
>>> prohibida su divulgación, copia o
>>> distribución a terceros sin la
>>> previa autorización escrita de
>>> FUVE-E
>>>
>>> En caso de no ser usted la persona
>>> a la que fuera dirigido este
>>> mensaje y a pesar de ello está
>>> continúa leyéndolo, ponemos en su
>>> conocimiento que está cometiendo un
>>> acto ilÃcito en virtud de la
>>> legislación vigente en la
>>> actualidad, por lo que deberá
>>> dejarlo de leer automáticamente.
>>>
>>> FUVE-E no es responsable de su
>>> integridad, exactitud, o de lo que
>>> acontezca cuando el correo
>>> electrónico circula por las
>>> infraestructuras de comunicaciones
>>> electrónicas públicas. En el caso
>>> de haber recibido este correo
>>> electrónico por error, se ruega
>>> notificar inmediatamente esta
>>> circunstancia mediante reenvÃo a la
>>> dirección electrónica del
>>> remitente.
>>>
>>> El correo electrónico vÃa Internet
>>> no permite asegurar la
>>> confidencialidad de los mensajes
>>> que se transmiten ni su integridad
>>> o correcta recepción, por lo que
>>> FUVE-E no asume ninguna
>>> responsabilidad que pueda derivarse
>>> de este hecho.
>>>
>>>
>>>
>>> _______________________________________________
>>> 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/20120216/355587ab/attachment-0001.htm
More information about the Jde-developers
mailing list