1. 程式人生 > >Linux----之pkg-config用法

Linux----之pkg-config用法

pkg-config

pkg-config程式是幹什麼用的?簡單的說就是向用戶向程式提供相應庫的路徑、版本號等資訊的程式。

譬如說我們執行以下命令: pkg-config  檢視gcc的CFLAGS引數

$pkg-config --libs --cflags opencv

會顯示如下資訊:

-I/usr/include/opencv -lcxcore -lcv -lhighgui -lcvaux

各位看官,你看這不就是我們用gcc編譯連線時CFLAGS的引數嗎?

因此當我們需要編譯連線某個庫時,我們只需要把上面那行加入gcc 的引數裡面即可。

這也是configure的作用,它會檢查你需要的包,產生相應的資訊。

那pkg-config從哪兒知道這些資訊的呢?它是從包名為xxx.pc這個檔案中查詢到的。拿上面那個例子說,它是從opencv.pc這個檔案中查知的。

pkg-config 又怎麼會知道opencv.pc這個檔案呢?

下面我們看一下pkg-config是怎樣工作的。

預設情況下,pkg-config首 先在prefix/lib/pkgconfig/中查詢相關包(譬如opencv)對應的相應的檔案(opencv.pc)。在linux上上述路徑名為 /usr/lib/pkconfig/。若是沒有找到,它也會到PKG_CONFIG_PATH這個環境變數所指定的路徑下去找。若是沒有找到,它就會報 錯,例如:

Package opencv was not found in the pkg-config search path. Perhaps you should add the directory containing `opencv.pc' to the PKG_CONFIG_PATH environment variable No package 'opencv' found