dlopen falla con el archivo no encontrado cuando el archivo está en camino correcto

StackOverflow https://stackoverflow.com/questions/3937369

  •  30-09-2019
  •  | 
  •  

Pregunta

Tengo una biblioteca construida usando libtool que es instalar en el directorio de la biblioteca del paquete, /usr/local/lib/myprog/libmylib.so. Estoy cargando dinámicamente la biblioteca en mi código con libltdl. Cuando intento cargar esta biblioteca en una máquina, que funciona muy bien. En otro, con la misma estructura y la biblioteca instalada en el mismo lugar, aparece un "archivo no encontrado" de error.

Si llamo lt_dlforeachfile directamente ante lt_dlopenext (que uso para cargar la biblioteca), entonces se puede ver mediante la impresión de nombres de archivo que la necesidad que la biblioteca se ha encontrado en la ruta de búsqueda. Pero a continuación, inmediatamente después, la carga de falla con un "archivo no encontrado" de error. ¿Alguna sugerencia?

Actualizar

He intentado cambiar al uso de dlopen y especificar explícitamente la ruta absoluta a la biblioteca. Esto todavía funciona en algunos sistemas y no en el otro.

¿Fue útil?

Solución

Resultó que libltdl se ocultaba el error real. el "archivo no encontrado" era de otra biblioteca que la biblioteca estaba carga dependía. Esto lo descubrí cuando se utiliza dlerror() para imprimir los mensajes de error. Después de instalar la biblioteca que falta, todo está bien!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top