¿Cómo encontrar un archivo de biblioteca compartida, si está en $ LD_LIBRARY_PATH y sé el nombre de la biblioteca (sin acceso a la raíz)?

0

Supongamos que tengo un programa que depende libbz2. El libbz2.so.1archivo está en $ LD_LIBRARY_PATH, y puedo compilarlo -lbz2sin ningún problema.

¿Cómo puedo encontrar el archivo de objeto compartido particular utilizado para la compilación?

Una forma estándar de hacerlo es usar ldconfig(como aquí , por ejemplo). Sin embargo, ldconfigrequiere root, al menos en Debian, y quiero buscar el archivo desde un script bash sin privilegios.

Entonces la pregunta es, ¿cómo encontrar un archivo específico utilizado sin acceso de root? Dado que gcc no tiene problemas para encontrar la biblioteca, parece muy posible.

Editar : parece que he formulado mal mi pregunta inicial. Quiero saber qué archivo usaría el enlazador si compilara el programa, sin realmente compilarlo .

lunes
fuente
Echa un vistazo a ldd.
dirkt
Quiero encontrar el archivo antes de la compilación.
lunes
¿Quiere decir que desea encontrar el archivo que gccusaría, dadas las opciones proporcionadas? Por favor aclara tu pregunta.
dirkt
Sí exactamente. He agregado una aclaración a la pregunta inicial.
lunes