pkg-config 使用


pkg-config 使用

  1. pkg-config –list-all
    列出所有可使用的連結庫,位置在 /usr/lib/pkgconfig 及 /usr/local/lib/pkgconfig 裡面的 xxx.pc 檔,新軟體一般都會安裝 .pc 檔,沒有可以自己建立,並且設定環境變數 PKG_CONFIG_PATH 供 pkg-config 尋找 .pc 檔路徑。

  2. pkg-config –cflags xxxx
    取得該連結庫的 CFLAGS 參數。(Cflags)

  3. pkg-config –libs xxxx
    取得該連結庫的 LDFLAGS 參數。(Libs)

  4. pkg-config –static xxxx
    取得該連結庫供靜態連結的 LDFLAGS 參數。(Libs.private)

  5. pkg-config –exists xxx
    假如連結庫存在則傳回 0。

  6. pkg-config –version
    取得 pkg-config 版本號。

  7. pkg-config –atleast-pkgconfig-version=VERSION
    假如 pkg-config 版本號大於等於 VERSION 則傳回 0。

  8. pkg-config –errors-to-stdout
    輸出 –print-errors 的錯誤訊息到 stdout 而非 stderr,需搭配 –print-errors 使用。

  9. pkg-config –print-errors xxxx
    假如連結庫不存在或有問題,則輸出相關錯誤訊息。(好像不太對??)

  10. pkg-config –print-requires xxxx
    取得連結庫所需的相關連結庫。(Requires)

  11. pkg-config –modversion xxxxx
    取得連結庫的版本號。(Version)

  12. pkg-config –variable=VARIABLENAME xxxx
    取得連結庫 .pc 檔案內的變數值。(prefix,exec_prefix,libdir,includedir)

  13. .pc 檔案製作

1
2
3
4
5
6
7
# blkid pkg-config 
# 註解
prefix=/usr
exec_prefix=/usr
libdir=/usr/lib
includedir=/usr/include
#上面四個都是變數,視情況可自行增加
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Name: blkid
Description: Block device id library
Version: 1.39
Requires: uuid devmapper
Cflags: -I${includedir}
Libs: -L${libdir} -lblkid -ldevmapper

Name: 連結庫名稱
Description: 連結庫描述
URL: 連結庫的來源網站
Version: 連結庫版本
Requires: 連結庫相依連結庫名稱
Conflicts: 連結庫相依連結庫版本限制
Libs: 連結庫編譯所需的 LDFLAGS 參數
Libs.private: 連結庫編譯所需的 LDFLAGS 參數,給靜態庫用的。
Cflags: 連結庫編譯所需的 CFLAGS 參數