反向 pkg 配置?

反向 pkg 配置?

假设使用pkg-config我可以找到需要哪些链接标志将库添加到我的代码中,假设如果我需要添加 cairo 库,我可以-l通过以下方式找到适当的标志

> pkg-config --libs cairo
> -lcairo

如何找到相反的内容(即链接标志 --> 库名称)?假设我想知道通过调用标志将添加哪个库-lm,我该怎么做?

答案1

假设我想知道通过调用 -lm 标志将添加哪个库,我该怎么做?

后面的部分-l是库的名称。它的二进制文件以 为前缀lib,因此您可以通过该名称找到它们;

> whereis libm
libm: /usr/lib64/libm.a /usr/lib64/libm.so

> whereis libcairo
libcairo: /usr/lib64/libcairo.so

ETC。

如果whereis没有说明任何内容,您还可以尝试 grep 的输出ldconfig -p(请参阅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

请注意,在这种情况下,我在“libm”后面附加了“.so”,这不是必需的,但它可以保存与“libmfoo ...”、“libmbar ...”等的匹配。因为-l指的是链接共享对象( .so)图书馆,这应该是非常万无一失的。

相关内容