Como eu encontro o nome do arquivo de uma biblioteca através do nome da biblioteca?
-
06-07-2019 - |
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
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