c'è un modo per scoprire a livello di programmazione quali percorsi vengono cercati da dlopen() per oggetti condivisi? Ho sempre pensato che dlopen() avrebbe solo cercato in/lib e/usr/lib ma ora ho visto che su Linux Mint diversi componenti di base come libglib-2.0.so si trovano in una cartella completamente diversa, ovvero in/rofs/lib/i386-gnu-linux e alcuni altri. C'è un modo per conoscere tutti questi percorsi che dlopen() cercherà per un oggetto condiviso? Ho già controllato la variabile di ambiente LD_LIBRARY_PATH ma non è stata definita affatto.dlopen() percorso di ricerca
5
A
risposta
7
un'occhiata alla pagina ldconfig
uomo, e il file: /etc/ld.so.conf
2
In aggiunta del ld.so.conf
suggerimento:
Se si vuole garantire che una libreria specifica è dlopen
-ed, passare un percorso per dlopen
, per esempio dlopen("/some/path/to/lib.so", RTLD_LOCAL)
o forse dlopen("./lib.so", RTLD_LOCAL)
ma non dlopen("lib.so", RTLD_LOCAL)