Suppose I want to know which library will be added by invoking -lm flag, how do I do that?
A parte depois do -l
é o nome da biblioteca. Seu binário é prefixado com lib
, então você pode encontrá-los com esse nome;
> whereis libm
libm: /usr/lib64/libm.a /usr/lib64/libm.so
> whereis libcairo
libcairo: /usr/lib64/libcairo.so
Etc.
Se whereis
não disser nada, você também pode tentar usar a saída de ldconfig -p
(consulte man ldconfig
):
> ldconfig -p | grep "libm.so"
libm.so.6 (libc6,x86-64, OS ABI: Linux 2.6.32) => /lib64/libm.so.6
libm.so.6 (libc6, OS ABI: Linux 2.6.32) => /lib/libm.so.6
libm.so (libc6,x86-64, OS ABI: Linux 2.6.32) => /lib64/libm.so
Observe que neste caso eu adicionei "libm" com ".so", o que não é necessário, mas salva a correspondência com "libmfoo ...", "libmbar ...", etc. Desde -l
refere-se a vincular bibliotecas de objetos compartilhados ( .so
), isso deve ser bastante infalível.