HDF5 con compilaci'on en arm

Iniciado por u135246, 17 Julio 2017, 19:12 PM

0 Miembros y 4 Visitantes están viendo este tema.

u135246

Hola, estoy intentando compilar en ubuntu pero sobre arm-linux uno de los ejemplos de HDF5 y me da un error:

compilo con: arm-linux-gnueabihf-g++ create.cpp -I -lhdf5_serial -lhdf5_cpp -o PRUEBA

y me da el siguiente error:

/usr/lib/gcc-cross/arm-linux-gnueabihf/5/../../../../arm-linux-gnueabihf/bin/ld: no se puede encontrar -lhdf5_cpp
collect2: error: ld returned 1 exit status

Alguien podría ayudarme? Muchas gracias

ivancea96

#1
Existe un archivo llamado "hdf5_cpp" o "libhdf5_cpp.o" o algo de este estilo en la carpeta en la que estás compilando? Quizás en otra carpeta?

u135246

existe archivos HDF5.h , libhdf5_cpp y libhdf5_serial, pero no los que me comentas

ivancea96

Bien, "libhdf5_cpp". Qué extensión tiene?

u135246


ivancea96

Si está en la misma ruta que los otros archivos, no debería dar problema.

Por cierto, por qué ese "-I"?

u135246

Está en la misma ruta y da problemas. Si quita el -I me da el siguiente los siguientes errores:

/usr/lib/gcc-cross/arm-linux-gnueabihf/5/../../../../arm-linux-gnueabihf/bin/ld: no se puede encontrar -lhdf5_serial
/usr/lib/gcc-cross/arm-linux-gnueabihf/5/../../../../arm-linux-gnueabihf/bin/ld: no se puede encontrar -lhdf5_cpp
collect2: error: ld returned 1 exit status

Gracias

ivancea96

El -I espera después una ruta en la cual buscar archivos para los includes. Si no tienes una ruta que agregarle, quítalo. Te quita el error porque interpreta "-l..." como la ruta, cosa que no está bien.

El error real es el último que pusiste, no encuentra ninguno de los 2 archivos.

Haz una prueba. Pon "-L ruta_de_los_archivos". -L es como -I, para poner la ruta, pero -L es para los archivos para el linking (que es lo que está tirando este error)

u135246

He metido _L con la ruta de los archivos:

arm-linux-gnueabihf-g++ create.cpp -L/usr/arm-linux-gnueabihf/include -llibhdf5_serial -llibhdf5_cpp -o PRUEBA

y me sigue dando el mismo error:

/usr/lib/gcc-cross/arm-linux-gnueabihf/5/../../../../arm-linux-gnueabihf/bin/ld: no se puede encontrar -llibhdf5_serial
/usr/lib/gcc-cross/arm-linux-gnueabihf/5/../../../../arm-linux-gnueabihf/bin/ld: no se puede encontrar -llibhdf5_cpp
collect2: error: ld returned 1 exit status

ivancea96

Puesta la ruta, prueba a poner: "-llibhdf5_serial" o "-lhdf5_serial" o "-llibhdf5_serial.so"
En priuncipio, debería funcionar con "-lhdf5_serial", sin el lib y sin la extensión, pero vaya