[Jde-dev] makefiles para componentes jderobot

franciscomiguel.rivas en urjc.es franciscomiguel.rivas en urjc.es
Jue Oct 14 17:33:51 CEST 2010


Menos mal si... porque casi me da un chungo cuando usé el tuyo  
cambiando los nombres y compiló a la primera y por mas que lo miraba  
lo vería todo igual.. jajaja

Muchísimas gracias!!!


"David Lobato" <dav.lobato en gmail.com> escribió:

> Malditos tabuladores!
>
> Sip, a mi me ha pasado alguna vez también. El make es un poco exquisito con
> esas cosas...
>
> Bueno, por lo menos ya está listo.
>
> Ánimo!
>
> 2010/10/14 <franciscomiguel.rivas en urjc.es>
>
>> Buenas,
>>
>> no, estoy en un ordena de un laboratorio de Alcorcón...
>>
>> pues no se que ha pasao.. pero ya funciona.. debe de tener algo raro mi
>> Makefile.. y por mas que lo miro no se que es.. he copiado el que me has
>> mandado y lo he modificado para mi fichero y ahora si que compila..
>>
>>
>> Valeeeee no me lo puedo creer.. acabo de hacer un diff entre los dos
>> Makefiles ya que parecían iguales y me estaba empezando a desquiciar:
>>
>>
>>        libtool --mode=link g++ -g -O -o naobody naobody.o $(LDADD)
>> $(LDFLAGS)
>>        libtool --mode=link g++ -g -O -o naobody naobody.o $(LDADD)
>> $(LDFLAGS)
>>
>> ¿parece igual, no? pues va a ser que no.. el primero tiene un tabulador (el
>> que funiona) y el de abajo tiene espacios... esto pasa por copy-paste desde
>> un mail.. jejeje
>>
>>
>> Muchas gracias por todo..!!!!!
>>
>>
>>
>>
>> "David Lobato" <dav.lobato en gmail.com> escribió:
>>
>>  Pues no termino de verlo. Estás compilando en una máquina del laboratorio?
>>>
>>> Te envio en privado el componente calibrator que estoy compilando con un
>>> Makefile del estilo, a ver si eres capaz de compilarlo.
>>>
>>> También se me ocurre que cambies el orden de los argumentos en el comando
>>> de
>>> libtool:
>>>
>>> libtool --mode=link g++ -g -O $(LDADD) $(LDFLAGS) -o naobody naobody.o
>>>
>>>
>>> 2010/10/14 <franciscomiguel.rivas en urjc.es>
>>>
>>>  Te adjunto el Makefile tal cual para que lo veas por si hay alguna
>>>> chorrada
>>>> que esta dando......
>>>>
>>>> salida del env:
>>>> ORBIT_SOCKETDIR=/tmp/orbit-frivas
>>>> SSH_AGENT_PID=1584
>>>> TERM=xterm
>>>> SHELL=/bin/bash
>>>>
>>>>
>>>> XDG_SESSION_COOKIE=8df90306f501eebbb36e92044c4047f2-1287055111.185023-1408569302
>>>> WINDOWID=23068676
>>>> OLDPWD=/home/frivas/svn/jderobot/jderobot/branches/5.0/src/components
>>>> GNOME_KEYRING_CONTROL=/tmp/keyring-jHHqzn
>>>> GTK_MODULES=canberra-gtk-module
>>>> USER=frivas
>>>>
>>>>
>>>> LS_COLORS=rs=0:di=01;34:ln=01;36:hl=44;37:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.
>>>> og
>>>> x=0
>>>>
>>>>
>>>> 1;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:
>>>> SSH_AUTH_SOCK=/tmp/keyring-jHHqzn/ssh
>>>> DEFAULTS_PATH=/usr/share/gconf/gnome.default.path
>>>> SESSION_MANAGER=local/ao-dep2-I167-02:@
>>>> /tmp/.ICE-unix/1550,unix/ao-dep2-I167-02:/tmp/.ICE-unix/1550
>>>> USERNAME=frivas
>>>> XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg
>>>> DESKTOP_SESSION=gnome
>>>>
>>>>
>>>> PATH=/home/frivas/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
>>>>
>>>> PWD=/home/frivas/svn/jderobot/jderobot/branches/5.0/src/components/naobody
>>>> GDM_KEYBOARD_LAYOUT=es
>>>> LANG=es_ES.UTF-8
>>>> GNOME_KEYRING_PID=1534
>>>> MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path
>>>> GDM_LANG=es_ES.UTF-8
>>>> GDMSESSION=gnome
>>>> SPEECHD_PORT=7560
>>>> SHLVL=1
>>>> HOME=/home/frivas
>>>> GNOME_DESKTOP_SESSION_ID=this-is-deprecated
>>>> LOGNAME=frivas
>>>> XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/
>>>>
>>>>
>>>> DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Ytw5aVxSlx,guid=7a457ed4d2960b49238d58474cb6e707
>>>> LESSOPEN=| /usr/bin/lesspipe %s
>>>> DISPLAY=:0.0
>>>> LESSCLOSE=/usr/bin/lesspipe %s %s
>>>> XAUTHORITY=/var/run/gdm/auth-for-frivas-M30vmh/database
>>>> COLORTERM=gnome-terminal
>>>> _=/usr/bin/env
>>>>
>>>>
>>>>
>>>> Es ubuntu la 10.04
>>>>
>>>>
>>>>
>>>> Muchas gracias por tu ayuda!!!
>>>>
>>>>
>>>>
>>>> "David Lobato" <dav.lobato en gmail.com> escribió:
>>>>
>>>>  Si compilo algo parecido tengo la siguiente salida:
>>>>
>>>>>
>>>>> g++ -I /home/dlobatol/workspace/jderobot/build/include/jderobot
>>>>> `pkg-config
>>>>> --cflags opencv` `pkg-config --cflags gtkmm-2.4 libglademm-2.4
>>>>> gthread-2.0`
>>>>>  -c -o calibrator.o calibrator.cpp
>>>>> g++ -I /home/dlobatol/workspace/jderobot/build/include/jderobot
>>>>> `pkg-config
>>>>> --cflags opencv` `pkg-config --cflags gtkmm-2.4 libglademm-2.4
>>>>> gthread-2.0`
>>>>>  -c -o view.o view.cpp
>>>>> g++ -I /home/dlobatol/workspace/jderobot/build/include/jderobot
>>>>> `pkg-config
>>>>> --cflags opencv` `pkg-config --cflags gtkmm-2.4 libglademm-2.4
>>>>> gthread-2.0`
>>>>>  -c -o controller.o controller.cpp
>>>>> libtool --mode=link g++ -g -O -o calibrator calibrator.o view.o
>>>>> controller.o
>>>>> /home/dlobatol/workspace/jderobot/build/lib/jderobot/libJderobotIce.la
>>>>> /home/dlobatol/workspace/jderobot/build/lib/jderobot/libJderobotUtil.la
>>>>> /home/dlobatol/workspace/jderobot/build/lib/jderobot/
>>>>>
>>>>> libcolorspacesmm.la/home/dlobatol/workspace/jderobot/build/lib/jderobot/libJderobotInterfaces.la
>>>>> /home/dlobatol/workspace/jderobot/build/lib/jderobot/libprogeo.la
>>>>> `pkg-config
>>>>> --libs gtkmm-2.4 libglademm-2.4 gthread-2.0` `pkg-config --libs
>>>>> opencv` -lgsl -lgslcblas
>>>>> libtool: link: g++ -g -O -o calibrator calibrator.o view.o controller.o
>>>>> -pthread
>>>>>  /home/dlobatol/workspace/jderobot/build/lib/jderobot/libJderobotIce.so
>>>>> /home/dlobatol/workspace/jderobot/build/lib/jderobot/libJderobotUtil.so
>>>>> /home/dlobatol/workspace/jderobot/build/lib/jderobot/libcolorspacesmm.so
>>>>>
>>>>>
>>>>> /home/dlobatol/workspace/jderobot/build/lib/jderobot/libJderobotInterfaces.so
>>>>> /home/dlobatol/workspace/jderobot/build/lib/jderobot/libprogeo.so
>>>>> /usr/lib/
>>>>> libglademm-2.4.so /usr/lib/libgtkmm-2.4.so /usr/lib/
>>>>> libglade-2.0.so/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/libglibmm-2.4.so /usr/lib/
>>>>> libcairomm-1.0.so/usr/lib/
>>>>> libsigc-2.0.so /usr/lib/libgtk-x11-2.0.so /usr/lib/libxml2.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 -lcv -lhighgui -lcvaux -lml -lcxcore -lgsl
>>>>> -lgslcblas -pthread -Wl,-rpath
>>>>> -Wl,/home/dlobatol/workspace/jderobot/build/lib/jderobot -Wl,-rpath
>>>>> -Wl,/home/dlobatol/workspace/jderobot/build/lib/jderobot
>>>>>
>>>>>
>>>>> Si te fijas se usa g++ tanto para compilar como para enlazar. En tu
>>>>> salida
>>>>> sin embargo al enlazar usa cc. No entiendo porque.
>>>>>
>>>>> Donde estás compilado? Que distribución? Podrías poner la salida del
>>>>> comando
>>>>> env para ver tus variables de entorno.
>>>>>
>>>>>
>>>>>
>>>>> 2010/10/14 <franciscomiguel.rivas en urjc.es>
>>>>>
>>>>>  Ahí va:
>>>>>
>>>>>>
>>>>>>
>>>>>> g++
>>>>>>
>>>>>> -I/home/frivas/svn/jderobot/jderobot/branches/5.0/build//include/jderobot
>>>>>> -I/usr/include/gearbox/ `pkg-config --cflags opencv` `pkg-config
>>>>>> --cflags
>>>>>> gtkmm-2.4 libglademm-2.4 gthread-2.0`   -c -o naobody.o naobody.cpp
>>>>>>
>>>>>> 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()'
>>>>>> naobody.o: In function `IceUtil::Shared::~Shared()':
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> "David Lobato" <dav.lobato en gmail.com> escribió:
>>>>>>
>>>>>>  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
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>> --
>>>>> 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
>




More information about the Jde-developers mailing list