dlopen non riesce con file non trovato quando il file è in percorso corretto

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

  •  30-09-2019
  •  | 
  •  

Domanda

Ho una biblioteca costruita con libtool, che è installare nella directory biblioteca del pacchetto, /usr/local/lib/myprog/libmylib.so. Sto dinamicamente il caricamento della libreria nel mio codice con libltdl. Quando provo a caricare questa libreria su una macchina, funziona bene. Su un altro, con la stessa corporatura e la biblioteca installato sulla stessa posizione, ho un "file not found" errore.

Se chiamo lt_dlforeachfile direttamente prima lt_dlopenext (che io uso per caricare la libreria), allora posso vedere stampando nomi di file che l'ho bisogno della libreria è stato trovato nel percorso di ricerca. Ma poi subito dopo, il caricamento non riesce con un "file non trovato" errore. Qualche suggerimento?

Aggiorna

Ho cercato di passare a utilizzare dlopen e specificando esplicitamente il percorso assoluto alla libreria. Questo funziona ancora in alcuni sistemi e non sull'altro.

È stato utile?

Soluzione

Si è scoperto che libltdl si nascondeva il vero errore. "file not found" era da un'altra libreria che la libreria ero carico dipendeva. Ho scoperto questo quando si utilizza dlerror() per stampare i messaggi di errore. Dopo aver installato la libreria mancante, va tutto bene!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top