2009-10-23 14 views
10

¿Cómo puedo encontrar el nombre de archivo de una biblioteca a través del nombre de la biblioteca?¿Cómo puedo encontrar el nombre de archivo de una biblioteca a través del nombre de la biblioteca?

En otras palabras, cuando uso "-lc", sé que es /lib/libc.so.6 (o algo similar). Quiero poder escribir algún comando donde "-lc" es la entrada y "/lib/libc.so.6" es la salida. Para extender esta idea futher, quería especificar la ruta de búsqueda para que pueda usar esta biblioteca para resolver diferentes cadenas de herramientas ... Cualquier ayuda sería impresionante,

Gracias chenz

Respuesta

8

Si desea averiguar dónde una determinada GCC encontrará libc.a o libc.so, hacer esto:

gcc --print-file-name=libc.a 
gcc --print-file-name=libc.so 

La razón -lc se traduce en libc.so.6 es algo complicado, porque glibc, libc.so es un script enlazador, que por lo general contiene:

/* GNU ld script 
    Use the shared library, but some functions are only in 
    the static library, so try that secondarily. */ 
OUTPUT_FORMAT(elf32-i386) 
GROUP (/lib/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED (/lib/ld-linux.so.2)) 

o algo similar.

4

-Wl gcc, - file.c traza

será la lista de archivos de entrada para imprimir ld

Cuestiones relacionadas