Linux下的pkg config簡介

2021-09-24 19:26:27 字數 2384 閱讀 1747

首先看一下 pkg-config 的介紹資訊。

pkgconfig 軟體包的描述資訊如下:

a tool for determining compilation options.

pkg-config手冊(「man pkg-config」命令)中的介紹資訊如下:

pkg-config - return metainformation about installed libraries.

the pkg-config program is used toretrieve information about installed libraries in the system.  it is typically used tocompile and linkagainst one or more libraries.

pkg-config  retrieves  information  about  packages  from  special metadata files. these files are named after the package, and has a.pc extension. it will additionally look in the colon-separated list of directories specified by thepkg_config_pathenvironment variable.

需要強調的是,pkg-config 用於程式或庫的編譯和連線過程,而非執行過程。

下面通過乙個示例,介紹 pkg-config 的使用場景及用法。

假設在系統上安裝了x265庫,安裝位置為 /usr/local,因此,其對應的庫檔案為 /usr/local/lib/libx265.so,標頭檔案為 /usr/local/include/x265.h,這些在編譯和連線其他程式或庫(如 ffmpeg)時所需的相關資訊,都包含在 /usr/local/lib/pkgconfig/x265.pc 檔案中了。x265.pc 檔案的內容如下:

[root@livestreamserver /usr/local]# cat /usr/local/lib/pkgconfig/x265.pc 

prefix=/usr/local

exec_prefix=$

libdir=$/lib

includedir=$/include

name: x265

description: h.265/hevc video encoder

version: 3.5

libs: -l$ -lx265

libs.private: -lstdc++ -lm -lgcc_s -lgcc -lgcc_s -lgcc -lrt -ldl

cflags: -i$

[root@livestreamserver /usr/local]#

現在以構建 ffmpeg 為例,介紹 pkg-config 的具體用法。

在構建 ffmpeg 時,首先需要通過 ./configure --enable-gpl --enable-libx265 命令建立構建選項。由於指定了要使用x265庫,所以該命令會去找x265庫的相關資訊。

在不進行任何pkg-config配置的情況下,上面的configure命令會報錯,提示在使用 pkg-config 時找不到 x265,錯誤資訊如下圖所示:

出現上面錯誤的原因,是由於 pkg-config 沒有找到x265.pc檔案,獲取不到編譯所需的x265庫的相關資訊。

pkg-config 會通過以下兩種途徑尋找庫的 .pc 檔案:

在本文中,採用向環境變數 pkg_config_path 中新增 x265.pc 所在目錄(即 /usr/local/lib/pkgconfig/)的方式解決 configure 命令的報錯問題。命令如下:

export pkg_config_path=/usr/local/lib/pkgconfig:$pkg_config_path
說明:可以將上面的命令新增到系統配置檔案(如 /etc/profile)或者使用者配置檔案中(如 ~/.bash_profile)中,以避免 pkg_config_path 的值在切換終端或系統重啟後失效。

完成上述操作後,再次執行 ./configure --enable-gpl --enable-libx265 命令,就不會出現警告資訊了。

Linux下ZendOptimizer的安裝與配置

內容 在裝的好的red hat linux 9 apache 2.0.55 mysql 5.1.6 php 5.1.2後,接下來就是安裝linux下的php加速器zendoptimizer 2.6.2了。自己編譯 php 後,zend optimizer 2.6.2 需要自己設定一下,請參照以下步驟...

Linux下的命令

管理員 普通使用者 pwd 顯示當前檔案全路徑 date 顯示系統當前日期和時間 who 顯示當前已登入的所有使用者名稱 cal 顯示日曆 uname r m,i,v 顯示當前系統作業系統資訊 wc l 行數,w字數,c位元組數 統計字數 clear 清屏 檔案操作touch 新建檔案mkdir 新...

linux 下 奇怪的

最近在做乙個從hp ux移行到linux 上面的專案,遇到乙個命令 hp ux date y m d h m s read sys date sys time dev null 2 1 但是這個命令在linux 下,就達不到預期的結果 之後問了高手,才得到解決辦法 linux read sys da...