[Jde-dev] makefiles para componentes jderobot

David Lobato dav.lobato en gmail.com
Jue Oct 14 13:50:26 CEST 2010


Quiero ver la salida completa. Cárgate el .o y haz el make otra vez para que
se compile el .cpp



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

> Buenas,
> si si, si hago todo eso.. algo se me esta escapando. Te mando los pasos:
> pwd
> /home/frivas/svn/jderobot/jderobot/branches/5.0
>
> ./configure --prefix=`pwd`/build --disable-component-recordingserver
> SLICEDIR=/usr/share/Ice-3.3.1/slice/
> make
> make install
>
>
> me meto en la carpeta donde esta mi componente y ejecuto el make.
>
> JDEROBOTDIR=/home/frivas/svn/jderobot/jderobot/branches/5.0/build/ make
>
>
>
> 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()'
>
> ........
>
> No veo donde esta el fallo...
>
>
>
> "David Lobato" <dav.lobato en gmail.com> escribió:
>
>  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
>>
>>
>
>


-- 
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/35676045/attachment-0001.htm 


More information about the Jde-developers mailing list