Pkg-Config

反向 pkg 配置?

  • April 1, 2014

假設使用pkg-config我可以找到需要哪些連結標誌向我的程式碼添加一個庫,假設如果我需要添加 cairo 庫,我可以-l通過

> pkg-config --libs cairo
> -lcairo

我如何找到反向(即連結標誌-> 庫名稱)?假設我想知道呼叫-lmflag 會添加哪個庫,我該怎麼做?

假設我想知道呼叫 -lm 標誌將添加哪個庫,我該怎麼做?

後面的部分-l是庫的名稱。它的二進製文件以 為前綴lib,因此您可以通過該名稱找到它們;

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

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

等等。

如果whereis沒有說什麼,您也可以嘗試 grepping 的輸出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) 庫,這應該是萬無一失的。

引用自:https://unix.stackexchange.com/questions/122330