[Jde-dev] makefiles para componentes jderobot

David Lobato dav.lobato en gmail.com
Jue Oct 14 13:15:58 CEST 2010


Ojo, que JDEROBOTDIR debe apuntar al directorio de instalación y no al
directorio fuente. Es decir, a aquel directorio en el que al hacer make
install va todo.

Por ejemplo si hicimos un configure con:

$> pwd
/home/dlobato/worspace/jderobot
$> ./configure --prefix=`pwd`/build

entonces JDEROBOTDIR=/home/dlobato/worspace/jderobot/build


2010/10/14 <franciscomiguel.rivas en urjc.es>

> Buenas,
> si, tengo a JDEROBOTDIR apuntado al directorio de instalación de JDE he
> usado:
>
> JDEROBOTDIR=<path> make (JDEROBOTDIR=/home/frivas/jde-5.0/ make)
>
> pero lo había probado de las tres formas y nada
>
>
> alguna otra idea?
>
>
>
> "David Lobato" <dav.lobato en gmail.com> escribió:
>
>  Hola Francisco,
>>
>> recuerda que tienes que declarar la variable JDEROBOTDIR con el directorio
>> donde instalaste jderobot.
>>
>> Puedes hacerlo de tres maneras:
>>
>>   1. Definirla directamente en el Makefile JDEROBOTDIR=<path>
>>   2. Definirla como variable de entorno
>>   3. Pasarsela al make al ejecuralo: $> JDEROBOTDIR=<path> make
>>
>>
>> Espero que eso solucione los problemas.
>>
>> Un saludo,
>> David.
>>
>> 2010/10/13 <franciscomiguel.rivas en urjc.es>
>>
>>  Buenas,
>>> estoy intentando compilar un componente que estoy haciendo, al intentarlo
>>> compilar desde el Makefile me salen una lista de dependencias que no
>>> están
>>> definidas...
>>>
>>> Mi Makefile:
>>>
>>> CXXFLAGS = -I$(JDEROBOTDIR)/include/jderobot
>>> -I/usr/local/include/gearbox/
>>> `pkg-config --cflags opencv` `pkg-config --cflags gtkmm-2.4
>>> libglademm-2.4
>>> gthread-2.0`
>>>
>>> LDFLAGS = `pkg-config --libs gtkmm-2.4 libglademm-2.4 gthread-2.0`
>>> `pkg-config --libs opencv` -lgsl -lgslcblas
>>> LDADD = $(JDEROBOTDIR)/lib/jderobot/libJderobotIce.la \
>>>       $(JDEROBOTDIR)/lib/jderobot/libJderobotUtil.la \
>>>       $(JDEROBOTDIR)/lib/jderobot/libcolorspacesmm.la \
>>>       $(JDEROBOTDIR)/lib/jderobot/libJderobotInterfaces.la \
>>>       $(JDEROBOTDIR)/lib/jderobot/libprogeo.la
>>>
>>> naobody: naobody.o
>>>       libtool --mode=link g++ -g -O -o naobody naobody.o $(LDADD)
>>> $(LDFLAGS)
>>>
>>> clean:
>>>       rm -rf *.o
>>>
>>> Errores:
>>> cc `pkg-config --libs gtkmm-2.4 libglademm-2.4 gthread-2.0` `pkg-config
>>> --libs opencv` -lgsl -lgslcblas  naobody.o   -o naobody
>>> naobody.o: In function `main':
>>> naobody.cpp:(.text+0x11c): undefined reference to
>>> `jderobotice::Application::Application(jderobotice::Component&)'
>>> naobody.cpp:(.text+0x137): undefined reference to
>>> `jderobotice::Application::jderobotMain(int, char**)'
>>> naobody.o: In function `__static_initialization_and_destruction_0(int,
>>> int)':
>>> naobody.cpp:(.text+0x1f9): undefined reference to
>>> `IceInternal::FactoryTable::FactoryTable()'
>>> naobody.cpp:(.text+0x1fe): undefined reference to
>>> `IceInternal::FactoryTable::~FactoryTable()'
>>> naobody.cpp:(.text+0x227): undefined reference to
>>> `Ice::AdapterNotFoundException::~AdapterNotFoundException()'
>>> naobody.cpp:(.text+0x250): undefined reference to
>>> `jderobot::JderobotException::~JderobotException()'
>>> naobody.cpp:(.text+0x279): undefined reference to
>>> `IceStorm::LinkExists::~LinkExists()'
>>>
>>> ¿veis algo que pueda faltar?
>>>
>>> Si lo compilo desde autotools en la cadena de jde no tengo problemas..
>>> pero
>>> como mas adelante necesitaré usar librerías que no están dentro de la
>>> cadena
>>> (naoqi) necesito compilarlo desde un Makefile,
>>>
>>> ¿alguna idea?
>>>
>>> Gracias de antemano,
>>> Fran
>>>
>>>
>>> "David Lobato" <dav.lobato en gmail.com> escribió:
>>>
>>>
>>>  Hola,
>>>
>>>>
>>>> Os adjunto un ejemplo de Makefile para compilar un componente para
>>>> jderobot
>>>> sin tener que añadirlo al arbol de jderobot. De esta manera en los
>>>> inicios
>>>> de los componentes que vayamos desarrollando no tenemos que complicarnos
>>>> la
>>>> vida con configures o makefiles.am
>>>>
>>>> La idea es que una vez instalado jderobot en nuestro sistema podemos
>>>> enlazar
>>>> con sus librerías, al igual que lo haríamos con otros proyectos
>>>> (opencv,gtk,..)
>>>>
>>>> El ejemplo sería así:
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>>>
>>>> CXXFLAGS = -I $(JDEROBOTDIR)/include/jderobot `pkg-config --cflags
>>>> opencv`
>>>> `pkg-config --cflags gtkmm-2.4 libglademm-2.4 gthread-2.0`
>>>> LDFLAGS = `pkg-config --libs gtkmm-2.4 libglademm-2.4 gthread-2.0`
>>>> `pkg-config --libs opencv` -lgsl -lgslcblas
>>>> LDADD = $(JDEROBOTDIR)/lib/jderobot/libJderobotIce.la \
>>>>       $(JDEROBOTDIR)/lib/jderobot/libJderobotUtil.la \
>>>>       $(JDEROBOTDIR)/lib/jderobot/libcolorspacesmm.la \
>>>>       $(JDEROBOTDIR)/lib/jderobot/libJderobotInterfaces.la \
>>>>       $(JDEROBOTDIR)/lib/jderobot/libprogeo.la
>>>>
>>>> calibrator: calibrator.o view.o controller.o
>>>>       libtool --mode=link g++ -g -O -o calibrator calibrator.o view.o
>>>> controller.o $(LDADD) $(LDFLAGS)
>>>>
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>>>
>>>>
>>>> En este ejemplo estoy compilando el componente calibrator que se crea
>>>> desde
>>>> los tres objetos indicados. Estos se compilan con una regla implicita de
>>>> make.
>>>> Para inicializar la variable JDEROBOTDIR, que es el lugar donde hemos
>>>> instalado jderobot, podemos bien declarar la variable de entorno bien
>>>> pasarsela a make con:
>>>>
>>>> $> JDEROBOTDIR=path-jderobot make
>>>>
>>>> Y con esto generaremos el ejecutable calibrator con todas sus librerías
>>>> dinámicas al alcance (no mas LDLIBRARYPATH!!)
>>>>
>>>> Espero que sea de ayuda,
>>>>
>>>>
>>>> --
>>>> David Lobato Bravo
>>>>
>>>> Universidad Rey Juan Carlos
>>>> c/Tulipan s/n
>>>> 28933 Móstoles
>>>> Madrid, Spain
>>>> http://jderobot.org
>>>>
>>>>
>>>>
>>>
>>>
>>
>> --
>> David Lobato Bravo
>>
>> Universidad Rey Juan Carlos
>> c/Tulipan s/n
>> 28933 Móstoles
>> Madrid, Spain
>> http://jderobot.org
>>
>>
>
>


-- 
David Lobato Bravo

Universidad Rey Juan Carlos
c/Tulipan s/n
28933 Móstoles
Madrid, Spain
http://jderobot.org
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20101014/7f9a4aa2/attachment-0001.htm 


More information about the Jde-developers mailing list