pkg-config
編譯package的時候, 總是會看到--pkg-config=PKGCONFIG相關的選項。這邊就稍微研究一下pkg-config。 pkg-config這指令主要是用來搜尋安裝在系統上的libs,透過此指令列出lib的相關訊息。而libs的相關資訊則被記錄在.pc的檔案裡面。 附註: 在cross-compile的時候,編譯好的packages通常不會安裝在系統的預設目錄底下。通常都會放置在我們自訂的目錄。若是想讓pkg-config去搜尋我們放置的目錄,而不是預設的路徑。僅僅只需要修改PKG_CONFIG_PATH即可。 e.g. PKG_CONFIG_PATH=$PKG_CONFIG_PATH : /cross/x64/usr/lib/pkg 這邊以一個foo.pc作為例子,其內容如下: foo.pc: prefix=/usr/local exec_prefix=${prefix} includedir=${prefix}/include libdir=${exec_prefix}/lib Name: foo Description: The foo library Version: 1.0.0 Cflags: -I${includedir}/foo Libs: -L${libdir} -lfoo 相關指令用法如下: # 列出 cflag 以及所需的libs (prefix=/usr 輸出則為-I/usr/include/foo -lfoo) /usr/lib/pkgconfig$ pkg-config --cflags --libs foo -I/usr/local/include/foo -L/usr/local/lib -lfoo # 檢查lib版本 /usr/lib/pkgconfig$ pkg-config --libs "foo >= 1.9" Requested 'foo >= 1.9' but version of foo is 1.0.0 # 測試lib是否存在 (0表示存在;) /usr/lib/pkgconfig$ pkg-config --exists foo; echo $? 0 # 測試lib是否存在,並顯示錯誤訊息 (這對有編譯packa