[Jderobot-dev] introrob cmake

JoseMaria josemaria.plaza en gmail.com
Mie Mar 13 13:57:30 CET 2013


Jesús, 

tiene pinta de fallo de enlazado, que nos estás enlazando bien con los
símbolos de las bibliotecas de ICE (no libjderobotice, sino las de ice
propiamente dichas). Esos símbolos de los que se queja la traza están en
esas bibliotecas de ice y son referenciados por nuestro libjderobotice.
Y no los está encontrando, de ahí el 'undefined reference'. Localiza en
tu sistema dónde están las bibliotecas de ice e indícale en el cmakelist
que enlace con ellas y dónde están.

Echa un ojo a [1] donde se explica bien en qué consiste la compilación,
el enlazado, la dependencia de cabeceras o la dependencia de
bibliotecas. Para enlazado dinámico, que es un pelín diferente
(LD_LIBRARY_PATH, etc.) tienes más información en la web.

Ánimo,

JoseMaria
[1]
http://www.nebrija.es/~abustind/Informatica/MetodologiaI/Practicas/Compilacion.pdf

On Mon, 2013-03-11 at 14:46 +0100, jesus checa rodriguez wrote:
> Buenas Mikel.
> 
> 
> Están las dos versiones en 4.4 como indica la siguiente traza.
> 
> -------------------------------------------------------------------------
> arck en arck-PCn:~$ gcc --version
> gcc (Ubuntu/Linaro 4.4.7-1ubuntu2) 4.4.7
> Copyright (C) 2010 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There
> is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
> PURPOSE.
> 
> 
> arck en arck-PCn:~$ g++ --version
> g++ (Ubuntu/Linaro 4.4.7-1ubuntu2) 4.4.7
> Copyright (C) 2010 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There
> is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
> PURPOSE.b
> 
> 
> arck en arck-PCn:~$ 
> -------------------------------------------------------------------------
> 
> 2013/3/11 Mikel González <m.gonzalezbai en gmail.com>
>         Buenas Jesús,
>         
>         ¿qué versión de gcc y g++ utilizas? Tienes que utilizar la
>         versión 4.4, para ello tienes que hacer:
>         
>         sudo apt-get install gcc-4.4
>         sudo apt-get install g++-4.4
>         sudo cd /usr/bin
>         sudo rm gcc
>         sudo rm g++
>         sudo ln -s gcc-4.4 gcc
>         sudo ln -s g++-4.4 g++
>         
>         Tras esto, prueba a compilar otra vez, recuerda eliminar todo
>         el rastro que cachea CMake antes de lanzar el "cmake .",
>         elimina los ficheros CMakeCache.txt.
>         
>         Un saludo.
>         
>         Mikel.
>         
>         
>         
>         El 11/03/2013 14:29, jesus checa rodriguez escribió:
>         
>         > buenos dias.
>         > 
>         > 
>         > estoy intentando compilar introrob para despues empezar a
>         > modificarlo, el problema es que al ejecutar el cmake me dice
>         > que tiene todo correcto como se puede ver en la traza
>         > siguientes y posteriormente, ejecuto el make y me da
>         > "undefined reference", si alguien puede explicarme que
>         > sucede se lo agradeceria,
>         > 
>         > 
>         > lo que no entiendo es que introrob lo tengo instalado desde
>         > el paquete jderobot-introrob y funciona perfecto.
>         > 
>         > 
>         > gracias.
>         > ------------------------------------------------------------------
>         > arck en arck-PCn:~/introrob/build$ cmake ..
>         > -- The C compiler identification is GNU
>         > -- The CXX compiler identification is GNU
>         > -- Check for working C compiler: /usr/bin/gcc
>         > -- Check for working C compiler: /usr/bin/gcc -- works
>         > -- Detecting C compiler ABI info
>         > -- Detecting C compiler ABI info - done
>         > -- Check for working CXX compiler: /usr/bin/c++
>         > -- Check for working CXX compiler: /usr/bin/c++ -- works
>         > -- Detecting CXX compiler ABI info
>         > -- Detecting CXX compiler ABI info - done
>         > -- checking for module 'gtkmm-2.4'
>         > --   found gtkmm-2.4, version 2.24.2
>         > -- checking for module 'gthread-2.0'
>         > --   found gthread-2.0, version 2.32.3
>         > -- checking for module 'libglademm-2.4'
>         > --   found libglademm-2.4, version 2.6.7
>         > -- checking for module 'libgnomecanvas-2.0'
>         > --   found libgnomecanvas-2.0, version 2.30.3
>         > -- checking for module 'libgnomecanvasmm-2.6'
>         > --   found libgnomecanvasmm-2.6, version 2.26.0
>         > -- checking for module 'gtkglextmm-1.2'
>         > --   found gtkglextmm-1.2, version 1.2.0
>         > -- checking for module 'gsl'
>         > --   found gsl, version 1.15
>         > -- Configuring done
>         > -- Generating done
>         > -- Build files have been written
>         > to: /home/arck/introrob/build
>         > arck en arck-PCn:~/introrob/build$ make
>         > Scanning dependencies of target introrob
>         > [ 12%] Building CXX object CMakeFiles/introrob.dir/API.cpp.o
>         > [ 25%] Building CXX object
>         > CMakeFiles/introrob.dir/control.cpp.o
>         > [ 37%] Building CXX object
>         > CMakeFiles/introrob.dir/drawarea.cpp.o
>         > [ 50%] Building CXX object CMakeFiles/introrob.dir/gui.cpp.o
>         > [ 62%] Building CXX object
>         > CMakeFiles/introrob.dir/introrob.cpp.o
>         > [ 75%] Building CXX object
>         > CMakeFiles/introrob.dir/MyAlgorithms.cpp.o
>         > [ 87%] Building C object CMakeFiles/introrob.dir/pioneer.c.o
>         > [100%] Building C object
>         > CMakeFiles/introrob.dir/pioneeropengl.c.o
>         > Linking CXX executable introrob
>         > /usr/local/lib/jderobot/libjderobotice.so: undefined
>         > reference to `VTT for IceGrid::CommunicatorDescriptor'
>         > /usr/local/lib/jderobot/libjderobotice.so: undefined
>         > reference to
>         > `IceGrid::ApplicationNotExistException::~ApplicationNotExistException()'
>         > /usr/local/lib/jderobot/libjderobotice.so: undefined
>         > reference to `vtable for IceGrid::CommunicatorDescriptor'
>         > /usr/local/lib/jderobot/libjderobotice.so: undefined
>         > reference to
>         > `Glacier2::CannotCreateSessionException::~CannotCreateSessionException()'
>         > /usr/local/lib/jderobot/libjderobotice.so: undefined
>         > reference to `vtable for
>         > IceGrid::ApplicationNotExistException'
>         > /usr/local/lib/jderobot/libjderobotice.so: undefined
>         > reference to `vtable for
>         > Glacier2::CannotCreateSessionException'
>         > collect2: ld returned 1 exit status
>         > make[2]: *** [introrob] Error 1
>         > make[1]: *** [CMakeFiles/introrob.dir/all] Error 2
>         > make: *** [all] Error 2
>         > arck en arck-PCn:~/introrob/build$
>         > ------------------------------------------------------------------
>         > 
>         > 
>         > 
>         > _______________________________________________
>         > Jde-developers mailing list
>         > Jde-developers en gsyc.es
>         > http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>         
>         
>         
>         _______________________________________________
>         Jde-developers mailing list
>         Jde-developers en gsyc.es
>         http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>         
> 
> 
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers

-- 
http://gsyc.es/jmplaza 
Universidad Rey Juan Carlos




More information about the Jde-developers mailing list