[Jderobot] compilacion multicore para jderobot

franciscomiguel.rivas en urjc.es franciscomiguel.rivas en urjc.es
Lun Oct 7 17:31:24 CEST 2013


Buenas,
eso es lo ideal... el problema es que si la librería ya está creada no  
ejecuta su cmake y pasaría lo mismo que el problema que acabamos de  
tener con jderobotinterfaces, que la primera vez va a funcionar bien  
pero el resto como ya está creada.. naranjas de las china jejeje


de todas maneras de hacerlo si.. para la siguiente...


un saludo,
Fran.




"Roberto Calvo" <rocapal en gsyc.urjc.es> escribió:

> El lun, 07-10-2013 a las 17:08 +0200, franciscomiguel.rivas en urjc.es
> escribió:
>> Buenas,
>> si tienes que estar en el cmake principal, ahí es donde se añaden el
>> resto de librerías:
>>
>>
>> FOREACH(LibFile ${LIBS_NEEDED})
>>      link_directories(${LIBS_DIR}/${LibFile})
>>      MESSAGE("${LIBS_DIR}/${LibFile}")
>> ENDFOREACH(LibFile)
>>
>>
>> Pero como jderobotinterfaces se crea en otro sitio... pues no se incluía.
>
> Estaba pensando, pero no sé si es posible, que en el CMakeList de cada
> librería, ella misma lo incluya en el link_directories ¿tiene más
> sentido no?.
> De todas formas, eso lo miramos para la siguiente versión, que sino
> nunca terminamos esta :-)
>>
>> ok, ahora lo subo.
>>
>> un saludo,
>> Fran.
>>
>>
>> "Roberto Calvo" <rocapal en gsyc.urjc.es> escribió:
>>
>> > El lun, 07-10-2013 a las 16:56 +0200, franciscomiguel.rivas en urjc.es
>> > escribió:
>> >> Buenas,
>> >> vale, el problema es que como jderobot interfaces no está en el
>> >> directorio habitual de librerías de jderobot no la encuentra, añadiendo
>> >> link_directories(${INTERFACES_CPP_DIR}/jderobot)
>> >> al cmake principal se soluciona.
>> >>
>> >> ahora me está dando problemas con gsl pero no se si es mi pc....
>> >>
>> >> Lo mas raro de todo es que con debian en el curro no me daba ningún
>> >> problema. En el ubuntu de casa me daba en mismo problema que a ti con
>> >> jderobotinterfaces.
>> >>
>> >> ¿puedes probar a ver si es sólo eso?
>> >
>> > Ahora si funciona bien las segundas compilaciones. Si quieres súbelo.
>> > Entiendo que tiene que estar obligatoriamente en el CMAKE principal
>> > ¿verdad?
>> >
>> > Sobre GSL no me está dando problemas, acabo de compilar con la versión
>> > más reciente del repo que ya tiene cambiado todo lo de colorspaces.
>> >
>> >>
>> >>
>> >> un saludo,
>> >> Fran.
>> >>
>> >>
>> >> "Roberto Calvo" <rocapal en gsyc.urjc.es> escribió:
>> >>
>> >> > El lun, 07-10-2013 a las 15:34 +0200, franciscomiguel.rivas en urjc.es
>> >> > escribió:
>> >> >> Buenas,
>> >> >> me pongo con ello. Se supone que cmake lo busca dentro del propio
>> >> >> proyecto, con los add_library que hayan definidos en los cmakes de
>> >> >> todo el proyecto.
>> >> >>
>> >> >> La referencia directa al .so no es lo "bonito". De hecho hay librerías
>> >> >> que lo hacen bien como geometry que ya estaban bien puestas todas las
>> >> >> interdependencias.
>> >> >
>> >> > Si si, lo del ".so" nos lo tenemos que cepillar!
>> >> >
>> >> >>
>> >> >> Acabo de hacer la prueba de borrar mi instalación de jderobot y me
>> >> >> compila todo de las dos formas.
>> >> >>
>> >> >>
>> >> >> ¿ejecutaste el ./clean_repository igual hay alguna caché de cmake que
>> >> >> está haciendo que falle?
>> >> >
>> >> > Si, siempre lo pruebo desde un repo nuevo recien bajado. Te cuento lo
>> >> > que me pasa.
>> >> >
>> >> > Lo primero es que he tenido que añadir unas cuantas libs más a  
>> los CMAKE
>> >> > porque se queja a la hora de linkar (y con razón) lo que no sé  
>> es porque
>> >> > antes no pasada, o porque en ubuntu no lo pide.
>> >> >
>> >> > progeo y openniServer -> ${LIBXML2_LIBRARIES}
>> >> > rgbdManualCalibrator -> ${CMAKE_THREAD_LIBS_INIT}
>> >> >
>> >> > Supongo que en un ubuntu linkará automáticamente o hará algo  
>> así, porque
>> >> > sino no lo entiendo.
>> >> >
>> >> > El caso es que después de hacer esto me compila todo bien la primera
>> >> > vez. Pero si luego modifico cualquier cmake o código y vuelvo  
>> a compilar
>> >> > me sale esto:
>> >> >
>> >> > vuelvo a compilar y lanzar el make es cuando me salta esto:
>> >> >
>> >> > Scanning dependencies of target kinectViewer
>> >> > Linking CXX executable kinectViewer
>> >> > /usr/bin/ld: no se puede encontrar -lJderobotInterfaces
>> >> > /usr/bin/ld: no se puede encontrar -lJderobotInterfaces
>> >> > collect2: ld returned 1 exit status
>> >> >
>> >> > Y no es solo por ese componente, me sale en todos. ¿Puede ser que en la
>> >> > segunda compilación no necesite entrar en ciertas carpetas de libs y no
>> >> > se generen algunas variables correctamente?
>> >> >
>> >> >>
>> >> >>
>> >> >> Un saludo,
>> >> >> Fran.
>> >> >>
>> >> >>
>> >> >>
>> >> >> "Roberto Calvo" <rocapal en gsyc.urjc.es> escribió:
>> >> >>
>> >> >> >
>> >> >> > Hola!
>> >> >> >
>> >> >> > Lo he probado y falla a la hora de linkar porque creo que  
>> está puesto
>> >> >> > para tener instaladas las librerías en el sistema en vez de  
>> pillarlas
>> >> >> > del directorio de compilación
>> >> >> >
>> >> >> > Linking CXX executable basic_component
>> >> >> > /usr/bin/ld: no se puede encontrar -lJderobotInterfaces
>> >> >> > collect2: ld returned 1 exit status
>> >> >> >
>> >> >> > Antes estaba así:
>> >> >> > ${INTERFACES_CPP_DIR}/jderobot/libJderobotInterfaces.so
>> >> >> >
>> >> >> > Si lo tienes instalado ya previamente las librerías en el sistema si
>> >> >> > funcionará, pero sino siempre falla en el linkado.
>> >> >> >
>> >> >> > ¿El cambio tiene que ver con lo de los cores?
>> >> >> > Vamos a intentar dejarlo estable lo antes posible. Si lo podemos
>> >> >> > arreglar rápido bien, sino revertimos el commit ¿ok?
>> >> >> >
>> >> >> > El lun, 07-10-2013 a las 14:43 +0200, franciscomiguel.rivas en urjc.es
>> >> >> > escribió:
>> >> >> >> Buenas,
>> >> >> >> acabo de cambiar todas las interdependencias de jderobot para poder
>> >> >> >> utilizar la compilación multicore que nos ofrece cmake. En mi caso
>> >> >> >> tengo un pc con 4 cores y los tiempos se reducen considerablemente:
>> >> >> >> Usando 1 core:
>> >> >> >>   2 min 40s
>> >> >> >> Usando los 4:
>> >> >> >>   45s
>> >> >> >>
>> >> >> >> para utilizar la compilación multicore solo hay que ejecutar:
>> >> >> >> make -jX (donde X es el número de cores que queremos usar para la
>> >> >> >> compilación)
>> >> >> >>
>> >> >> >> en mi caso:
>> >> >> >> make -j4
>> >> >> >>
>> >> >> >>
>> >> >> >> Todos los que puedan que lo prueben y que digan si les da a
>> >> >> algún problema.
>> >> >> >>
>> >> >> >>
>> >> >> >> un saludo,
>> >> >> >> Fran.
>> >> >> >>
>> >> >> >> ------------------------------------------------------------------
>> >> >> >> 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).
>> >> >> >> _______________________________________________
>> >> >> >> Jde-developers mailing list
>> >> >> >> Jde-developers en gsyc.es
>> >> >> >> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>> >> >> >
>> >> >> > --
>> >> >> > ?Roberto Calvo Palomino        | Robotics Lab (GSyC)
>> >> >> > R&D Android Mobile Engineer   | Universidad Rey Juan Carlos
>> >> >> >
>> >> >> > Twitter: @rocapal
>> >> >> > Linkedin: http://www.linkedin.com/in/rocapal
>> >> >> >
>> >> >> >
>> >> >>
>> >> >>
>> >> >>
>> >> >> ------------------------------------------------------------------
>> >> >> 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).
>> >> >
>> >> > --
>> >> > ?Roberto Calvo Palomino        | Robotics Lab (GSyC)
>> >> > R&D Android Mobile Engineer   | Universidad Rey Juan Carlos
>> >> >
>> >> > Twitter: @rocapal
>> >> > Linkedin: http://www.linkedin.com/in/rocapal
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >> ------------------------------------------------------------------
>> >> 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).
>> >
>> > --
>> > ?Roberto Calvo Palomino        | Robotics Lab (GSyC)
>> > R&D Android Mobile Engineer   | Universidad Rey Juan Carlos
>> >
>> > Twitter: @rocapal
>> > Linkedin: http://www.linkedin.com/in/rocapal
>> >
>> >
>>
>>
>>
>> ------------------------------------------------------------------
>> 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).
>
> --
> ?Roberto Calvo Palomino        | Robotics Lab (GSyC)
> R&D Android Mobile Engineer   | Universidad Rey Juan Carlos
>
> Twitter: @rocapal
> Linkedin: http://www.linkedin.com/in/rocapal
>
>



------------------------------------------------------------------
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