Pkg-Config
反向 pkg 配置?
假設使用
pkg-config
我可以找到需要哪些連結標誌向我的程式碼添加一個庫,假設如果我需要添加 cairo 庫,我可以-l
通過> pkg-config --libs cairo > -lcairo
我如何找到反向(即連結標誌-> 庫名稱)?假設我想知道呼叫
-lm
flag 會添加哪個庫,我該怎麼做?
假設我想知道呼叫 -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
) 庫,這應該是萬無一失的。