Pergunta

Como eu encontrar o nome do arquivo de uma biblioteca através do nome da biblioteca?

Em outras palavras, quando eu uso "lc", eu sei que é /lib/libc.so.6 (ou algo semelhante). Eu quero ser capaz de digitar algum comando onde "lc" é a entrada e "/lib/libc.so.6" é a saída. Para estender esta ideia futher, eu quis especificar o meu próprio caminho de pesquisa para que eu possa usar esse resolvedor biblioteca para diferentes toolchains ... Qualquer ajuda seria fantástico,

Graças Chenz

Foi útil?

Solução

Se você quiser descobrir onde um determinado GCC vai encontrar libc.a ou libc.so, faça o seguinte:

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

O -lc razão traduz em libc.so.6 é um pouco complicado, porque glibc, libc.so é um script de vinculador, que normalmente contém:

/* 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 ) )

ou algo similar.

Outras dicas

gcc -Wl, - trace file.c

imprimirá lista de arquivos de entrada para ld

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top