[Jderobot] compilacion multicore para jderobot
Roberto Calvo
rocapal en gsyc.urjc.es
Lun Oct 7 17:17:51 CEST 2013
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
More information about the Jde-developers
mailing list