Hola Francisco,<div><br></div><div>recuerda que tienes que declarar la variable JDEROBOTDIR con el directorio donde instalaste jderobot.</div><div><br></div><div>Puedes hacerlo de tres maneras:</div><div><ol><li>Definirla directamente en el Makefile JDEROBOTDIR=&lt;path&gt;</li>
<li>Definirla como variable de entorno</li><li>Pasarsela al make al ejecuralo: $&gt; JDEROBOTDIR=&lt;path&gt; make</li></ol><div>Espero que eso solucione los problemas.</div><div><br></div><div>Un saludo,</div><div>David.</div>
<br><div class="gmail_quote">2010/10/13  <span dir="ltr">&lt;<a href="mailto:franciscomiguel.rivas@urjc.es">franciscomiguel.rivas@urjc.es</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Buenas,<br>
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...<br>
<br>
Mi Makefile:<br>
<br>
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`<div class="im"><br>
LDFLAGS = `pkg-config --libs gtkmm-2.4 libglademm-2.4 gthread-2.0` `pkg-config --libs opencv` -lgsl -lgslcblas<br>
LDADD = $(JDEROBOTDIR)/lib/jderobot/libJderobotIce.la \<br>
        $(JDEROBOTDIR)/lib/jderobot/libJderobotUtil.la \<br>
        $(JDEROBOTDIR)/lib/jderobot/<a href="http://libcolorspacesmm.la" target="_blank">libcolorspacesmm.la</a> \<br>
        $(JDEROBOTDIR)/lib/jderobot/libJderobotInterfaces.la \<br>
        $(JDEROBOTDIR)/lib/jderobot/<a href="http://libprogeo.la" target="_blank">libprogeo.la</a><br>
<br></div>
naobody: naobody.o<br>
        libtool --mode=link g++ -g -O -o naobody naobody.o $(LDADD) $(LDFLAGS)<br>
<br>
clean:<br>
        rm -rf *.o<br>
<br>
Errores:<br>
cc `pkg-config --libs gtkmm-2.4 libglademm-2.4 gthread-2.0` `pkg-config --libs opencv` -lgsl -lgslcblas  naobody.o   -o naobody<br>
naobody.o: In function `main&#39;:<br>
naobody.cpp:(.text+0x11c): undefined reference to `jderobotice::Application::Application(jderobotice::Component&amp;)&#39;<br>
naobody.cpp:(.text+0x137): undefined reference to `jderobotice::Application::jderobotMain(int, char**)&#39;<br>
naobody.o: In function `__static_initialization_and_destruction_0(int, int)&#39;:<br>
naobody.cpp:(.text+0x1f9): undefined reference to `IceInternal::FactoryTable::FactoryTable()&#39;<br>
naobody.cpp:(.text+0x1fe): undefined reference to `IceInternal::FactoryTable::~FactoryTable()&#39;<br>
naobody.cpp:(.text+0x227): undefined reference to `Ice::AdapterNotFoundException::~AdapterNotFoundException()&#39;<br>
naobody.cpp:(.text+0x250): undefined reference to `jderobot::JderobotException::~JderobotException()&#39;<br>
naobody.cpp:(.text+0x279): undefined reference to `IceStorm::LinkExists::~LinkExists()&#39;<br>
<br>
¿veis algo que pueda faltar?<br>
<br>
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,<br>
<br>
¿alguna idea?<br>
<br>
Gracias de antemano,<br>
Fran<br>
<br>
<br>
&quot;David Lobato&quot; &lt;<a href="mailto:dav.lobato@gmail.com" target="_blank">dav.lobato@gmail.com</a>&gt; escribió:<div><div></div><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hola,<br>
<br>
Os adjunto un ejemplo de Makefile para compilar un componente para jderobot<br>
sin tener que añadirlo al arbol de jderobot. De esta manera en los inicios<br>
de los componentes que vayamos desarrollando no tenemos que complicarnos la<br>
vida con configures o <a href="http://makefiles.am" target="_blank">makefiles.am</a><br>
<br>
La idea es que una vez instalado jderobot en nuestro sistema podemos enlazar<br>
con sus librerías, al igual que lo haríamos con otros proyectos<br>
(opencv,gtk,..)<br>
<br>
El ejemplo sería así:<br>
<br>
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br>
<br>
CXXFLAGS = -I $(JDEROBOTDIR)/include/jderobot `pkg-config --cflags opencv`<br>
`pkg-config --cflags gtkmm-2.4 libglademm-2.4 gthread-2.0`<br>
LDFLAGS = `pkg-config --libs gtkmm-2.4 libglademm-2.4 gthread-2.0`<br>
`pkg-config --libs opencv` -lgsl -lgslcblas<br>
LDADD = $(JDEROBOTDIR)/lib/jderobot/libJderobotIce.la \<br>
        $(JDEROBOTDIR)/lib/jderobot/libJderobotUtil.la \<br>
        $(JDEROBOTDIR)/lib/jderobot/<a href="http://libcolorspacesmm.la" target="_blank">libcolorspacesmm.la</a> \<br>
        $(JDEROBOTDIR)/lib/jderobot/libJderobotInterfaces.la \<br>
        $(JDEROBOTDIR)/lib/jderobot/<a href="http://libprogeo.la" target="_blank">libprogeo.la</a><br>
<br>
calibrator: calibrator.o view.o controller.o<br>
        libtool --mode=link g++ -g -O -o calibrator calibrator.o view.o<br>
controller.o $(LDADD) $(LDFLAGS)<br>
<br>
<br>
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br>
<br>
<br>
En este ejemplo estoy compilando el componente calibrator que se crea desde<br>
los tres objetos indicados. Estos se compilan con una regla implicita de<br>
make.<br>
Para inicializar la variable JDEROBOTDIR, que es el lugar donde hemos<br>
instalado jderobot, podemos bien declarar la variable de entorno bien<br>
pasarsela a make con:<br>
<br>
$&gt; JDEROBOTDIR=path-jderobot make<br>
<br>
Y con esto generaremos el ejecutable calibrator con todas sus librerías<br>
dinámicas al alcance (no mas LDLIBRARYPATH!!)<br>
<br>
Espero que sea de ayuda,<br>
<br>
<br>
--<br>
David Lobato Bravo<br>
<br>
Universidad Rey Juan Carlos<br>
c/Tulipan s/n<br>
28933 Móstoles<br>
Madrid, Spain<br>
<a href="http://jderobot.org" target="_blank">http://jderobot.org</a><br>
<br>
</blockquote>
<br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div>David Lobato Bravo</div><div><br></div><div>Universidad Rey Juan Carlos</div><div>c/Tulipan s/n</div><div>28933 Móstoles</div><div>Madrid, Spain</div><div>
<a href="http://jderobot.org" target="_blank">http://jderobot.org</a></div><br>
</div>