[Jderobot-dev] introrob cmake

franciscomiguel.rivas en urjc.es franciscomiguel.rivas en urjc.es
Jue Mar 14 17:25:40 CET 2013


Buenas,
no te compliques.. para librer�as que quieras resolver dependencias  
con CMake vete a los cmakes independientes que hemos subidos y copia  
lo que necesites. En los cmakes de openniserver y kinectviewer que he  
subido est�n pr�cticamente todas las librer�as que solemos utilizar en  
jderobot.
Por ejemplo para ice:

#manual ICE
FIND_PATH( Ice_INCLUDE_DIR NAMES Ice/Ice.h  PATHS ENV C++LIB ENV)

IF( Ice_INCLUDE_DIR )
     FIND_LIBRARY( Ice_LIBRARY1 NAMES Ice PATHS ENV C++LIB ENV PATH  
PATH_SUFFIXES lib lib64 )
     FIND_LIBRARY( Ice_LIBRARY2 NAMES IceUtil PATHS ENV C++LIB ENV  
PATH PATH_SUFFIXES lib lib64)
     SET (Ice_LIBRARIES ${Ice_LIBRARY1} ${Ice_LIBRARY2})
     IF( Ice_LIBRARIES )
		MESSAGE ("-- Ice found at ${Ice_LIBRARIES}")
		include_directories(${Ice_INCLUDE_DIR})
		link_directories(${Ice_LIBRARIES})
     ENDIF( Ice_LIBRARIES )
ENDIF(Ice_INCLUDE_DIR)

IF(NOT Ice_LIBRARIES)
		MESSAGE ("*** Ice not found")
ENDIF()


y luego a�adir Ice_LIBRARIES a las librer�as de lincado:

TARGET_LINK_LIBRARIES(tu_componente
......
   ${Ice_LIBRARIES}
......
)


"jesus checa rodriguez" <j_checa_rodriguez en hotmail.com> escribi�:

> buenos d�as.
>
> siguiendo lo que Jose Maria me ha indicado, tengo que buscar las librerias
> de Ice e incrustarlas en el CMAKELISTS, el problema es que cuando busco
> la librer�a Ice me salen varios resultados 16 para ser mas espec�ficos
> entre ellos una libIce.so y una libIceE.so, entiendo que es alguna de estas
> dos,�cual de las dos seria?
>
> gracias
>
>
> El 13 de marzo de 2013 13:57, JoseMaria <josemaria.plaza en gmail.com>escribi�:
>
>> 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
>>
>>
>> _______________________________________________
>> Jde-developers mailing list
>> Jde-developers en gsyc.es
>> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>>
>



------------------------------------------------------------------
Laboratorio de An�lisis del Movimiento, Biomec�nica, Ergonom�a y  
Control Motor (LAMBECOM).
Departamento de Fisioterapia, Terapia Ocupacional, Rehabilitaci�n y  
Medicina F�sica.
Universidad Rey Juan Carlos (URJC).


More information about the Jde-developers mailing list