Quiero ver la salida completa. Cárgate el .o y haz el make otra vez para que se compile el .cpp<br><br><div><br></div><div><br><div class="gmail_quote">2010/10/14  <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>
si si, si hago todo eso.. algo se me esta escapando. Te mando los pasos:<br>
pwd<br>
/home/frivas/svn/jderobot/jderobot/branches/5.0<br>
<br>
./configure --prefix=`pwd`/build --disable-component-recordingserver SLICEDIR=/usr/share/Ice-3.3.1/slice/<br>
make<br>
make install<br>
<br>
<br>
me meto en la carpeta donde esta mi componente y ejecuto el make.<br>
<br>
JDEROBOTDIR=/home/frivas/svn/jderobot/jderobot/branches/5.0/build/ make<div class="im"><br>
<br>
<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></div>
........<br>
<br>
No veo donde esta el fallo...<div><div></div><div class="h5"><br>
<br>
<br>
&quot;David Lobato&quot; &lt;<a href="mailto:dav.lobato@gmail.com" target="_blank">dav.lobato@gmail.com</a>&gt; escribió:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Ojo, que JDEROBOTDIR debe apuntar al directorio de instalación y no al<br>
directorio fuente. Es decir, a aquel directorio en el que al hacer make<br>
install va todo.<br>
<br>
Por ejemplo si hicimos un configure con:<br>
<br>
$&gt; pwd<br>
/home/dlobato/worspace/jderobot<br>
$&gt; ./configure --prefix=`pwd`/build<br>
<br>
entonces JDEROBOTDIR=/home/dlobato/worspace/jderobot/build<br>
<br>
<br>
2010/10/14 &lt;<a href="mailto:franciscomiguel.rivas@urjc.es" target="_blank">franciscomiguel.rivas@urjc.es</a>&gt;<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Buenas,<br>
si, tengo a JDEROBOTDIR apuntado al directorio de instalación de JDE he<br>
usado:<br>
<br>
JDEROBOTDIR=&lt;path&gt; make (JDEROBOTDIR=/home/frivas/jde-5.0/ make)<br>
<br>
pero lo había probado de las tres formas y nada<br>
<br>
<br>
alguna otra idea?<br>
<br>
<br>
<br>
&quot;David Lobato&quot; &lt;<a href="mailto:dav.lobato@gmail.com" target="_blank">dav.lobato@gmail.com</a>&gt; escribió:<br>
<br>
 Hola Francisco,<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
recuerda que tienes que declarar la variable JDEROBOTDIR con el directorio<br>
donde instalaste jderobot.<br>
<br>
Puedes hacerlo de tres maneras:<br>
<br>
  1. Definirla directamente en el Makefile JDEROBOTDIR=&lt;path&gt;<br>
  2. Definirla como variable de entorno<br>
  3. Pasarsela al make al ejecuralo: $&gt; JDEROBOTDIR=&lt;path&gt; make<br>
<br>
<br>
Espero que eso solucione los problemas.<br>
<br>
Un saludo,<br>
David.<br>
<br>
2010/10/13 &lt;<a href="mailto:franciscomiguel.rivas@urjc.es" target="_blank">franciscomiguel.rivas@urjc.es</a>&gt;<br>
<br>
 Buenas,<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
estoy intentando compilar un componente que estoy haciendo, al intentarlo<br>
compilar desde el Makefile me salen una lista de dependencias que no<br>
están<br>
definidas...<br>
<br>
Mi Makefile:<br>
<br>
CXXFLAGS = -I$(JDEROBOTDIR)/include/jderobot<br>
-I/usr/local/include/gearbox/<br>
`pkg-config --cflags opencv` `pkg-config --cflags gtkmm-2.4<br>
libglademm-2.4<br>
gthread-2.0`<br>
<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>
naobody: naobody.o<br>
      libtool --mode=link g++ -g -O -o naobody naobody.o $(LDADD)<br>
$(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<br>
--libs opencv` -lgsl -lgslcblas  naobody.o   -o naobody<br>
naobody.o: In function `main&#39;:<br>
naobody.cpp:(.text+0x11c): undefined reference to<br>
`jderobotice::Application::Application(jderobotice::Component&amp;)&#39;<br>
naobody.cpp:(.text+0x137): undefined reference to<br>
`jderobotice::Application::jderobotMain(int, char**)&#39;<br>
naobody.o: In function `__static_initialization_and_destruction_0(int,<br>
int)&#39;:<br>
naobody.cpp:(.text+0x1f9): undefined reference to<br>
`IceInternal::FactoryTable::FactoryTable()&#39;<br>
naobody.cpp:(.text+0x1fe): undefined reference to<br>
`IceInternal::FactoryTable::~FactoryTable()&#39;<br>
naobody.cpp:(.text+0x227): undefined reference to<br>
`Ice::AdapterNotFoundException::~AdapterNotFoundException()&#39;<br>
naobody.cpp:(.text+0x250): undefined reference to<br>
`jderobot::JderobotException::~JderobotException()&#39;<br>
naobody.cpp:(.text+0x279): undefined reference to<br>
`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..<br>
pero<br>
como mas adelante necesitaré usar librerías que no están dentro de la<br>
cadena<br>
(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ó:<br>
<br>
<br>
 Hola,<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Os adjunto un ejemplo de Makefile para compilar un componente para<br>
jderobot<br>
sin tener que añadirlo al arbol de jderobot. De esta manera en los<br>
inicios<br>
de los componentes que vayamos desarrollando no tenemos que complicarnos<br>
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<br>
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>
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br>
<br>
CXXFLAGS = -I $(JDEROBOTDIR)/include/jderobot `pkg-config --cflags<br>
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>
<br>
<br>
En este ejemplo estoy compilando el componente calibrator que se crea<br>
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>
<br>
<br>
</blockquote>
<br>
<br>
</blockquote>
<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>
<br>
</blockquote>
<br>
<br>
</blockquote>
<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>