Si compilo algo parecido tengo la siguiente salida:<div><br></div><div><div>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</div>
<div>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</div><div>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</div>
<div>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/<a href="http://libcolorspacesmm.la">libcolorspacesmm.la</a> /home/dlobatol/workspace/jderobot/build/lib/jderobot/libJderobotInterfaces.la /home/dlobatol/workspace/jderobot/build/lib/jderobot/<a href="http://libprogeo.la">libprogeo.la</a> `pkg-config --libs gtkmm-2.4 libglademm-2.4 gthread-2.0` `pkg-config --libs opencv` -lgsl -lgslcblas</div>
<div>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/<a href="http://libglademm-2.4.so">libglademm-2.4.so</a> /usr/lib/<a href="http://libgtkmm-2.4.so">libgtkmm-2.4.so</a> /usr/lib/<a href="http://libglade-2.0.so">libglade-2.0.so</a> /usr/lib/<a href="http://libatkmm-1.6.so">libatkmm-1.6.so</a> /usr/lib/<a href="http://libgdkmm-2.4.so">libgdkmm-2.4.so</a> /usr/lib/<a href="http://libgiomm-2.4.so">libgiomm-2.4.so</a> /usr/lib/<a href="http://libpangomm-1.4.so">libpangomm-1.4.so</a> /usr/lib/<a href="http://libglibmm-2.4.so">libglibmm-2.4.so</a> /usr/lib/<a href="http://libcairomm-1.0.so">libcairomm-1.0.so</a> /usr/lib/<a href="http://libsigc-2.0.so">libsigc-2.0.so</a> /usr/lib/<a href="http://libgtk-x11-2.0.so">libgtk-x11-2.0.so</a> /usr/lib/libxml2.so /usr/lib/<a href="http://libgdk-x11-2.0.so">libgdk-x11-2.0.so</a> /usr/lib/<a href="http://libatk-1.0.so">libatk-1.0.so</a> /usr/lib/<a href="http://libgio-2.0.so">libgio-2.0.so</a> /usr/lib/<a href="http://libpangoft2-1.0.so">libpangoft2-1.0.so</a> /usr/lib/<a href="http://libgdk_pixbuf-2.0.so">libgdk_pixbuf-2.0.so</a> -lm /usr/lib/<a href="http://libpangocairo-1.0.so">libpangocairo-1.0.so</a> /usr/lib/libcairo.so /usr/lib/<a href="http://libpango-1.0.so">libpango-1.0.so</a> /usr/lib/libfreetype.so -lfontconfig /usr/lib/<a href="http://libgobject-2.0.so">libgobject-2.0.so</a> /usr/lib/<a href="http://libgmodule-2.0.so">libgmodule-2.0.so</a> /usr/lib/<a href="http://libgthread-2.0.so">libgthread-2.0.so</a> -lrt /usr/lib/<a href="http://libglib-2.0.so">libglib-2.0.so</a> -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</div>
</div><div><br></div><div><br></div><div>Si te fijas se usa g++ tanto para compilar como para enlazar. En tu salida sin embargo al enlazar usa cc. No entiendo porque.</div><div><br></div><div>Donde estás compilado? Que distribución? Podrías poner la salida del comando env para ver tus variables de entorno.</div>
<div><br></div><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;">
Ahí va:<br>
<br>
<br>
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<div class="im">
<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></div>
naobody.o: In function `IceUtil::Shared::~Shared()&#39;:<div><div></div><div class="h5"><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>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Quiero ver la salida completa. Cárgate el .o y haz el make otra vez para que<br>
se compile el .cpp<br>
<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 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<br>
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<br>
<br>
<br>
<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>
........<br>
<br>
No veo donde esta el fallo...<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>
 Ojo, que JDEROBOTDIR debe apuntar al directorio de instalación y no al<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
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>
 Buenas,<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
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>
<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<br>
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>
<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<br>
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>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
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<br>
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>
<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>
<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<br>
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<br>
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>
<br>
</blockquote>
<br>
<br>
</blockquote>
--<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>