pkg-config

轉自:https://zh.wikipedia.org/wiki/Pkg-config

pkg-config 是一個在源代碼編譯時查詢已安裝的的使用接口的計算機工具軟件。pkg-config原本是設計用於Linux的,但現在在各個版本的BSDwindowsMac OS XSolaris上都有着可用的版本。

它輸出已安裝的庫的相關信息,包括:

  • C/C++編譯器需要的輸入參數
  • 鏈接器需要的輸入參數
  • 已安裝軟件包的版本信息

工作原理:

當安裝一個庫時(例如從RPMdeb或其他二進制包管理系統),會包括一個後綴名爲pc的文件,它會放入某個文件夾下(依賴於你的系統設置)。例如,在Linux爲該軟件的庫文件所在文件夾lib之下的子文件夾pkgconfig。並把該子文件夾加入pkg-config的環境變量PKG_CONFIG_PATH作爲搜索路徑,例如在bash配置文件中加入一行:

 $ export PKG_CONFIG_PATH=/usr/local/`庫的名字`/lib/pkgconfig:$PKG_CONFIG_PATH

在這個.pc文件裏包含有數個條目。這些條目通常包含用於其他使用這個庫的程序編譯時需要的庫設置,以及頭文件的位置,版本信息和一個簡介。

這是一個用於libpng的.pc文件的樣例:

 
prefix=/usr/local
 exec_prefix=${prefix}
 libdir=${exec_prefix}/lib
 includedir=${exec_prefix}/include
  
 Name: libpng12
 Description: Loads and saves PNG files
 Version: 1.2.8
 Libs: -L${libdir} -lpng12 -lz
 Cflags: -I${includedir}/libpng12

這個文件告訴我們這些庫可以在/usr/local/lib找到,頭文件可以在/usr/local/include裏找到,庫的名字是libpng12並且版本號是1.2.8。它也提供了用於編譯依賴於libpng的源代碼時需要的鏈接器參數。

這兒是一個編譯時使用pkg-config的樣例:

gcc -o test test.c $(pkg-config --libs --cflags libpng)

發佈了8 篇原創文章 · 獲贊 13 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章