首先看一下 pkg-config 的介紹資訊。
pkgconfig 軟體包的描述資訊如下:
a tool for determining compilation options.pkg-config手冊(「man pkg-config」命令)中的介紹資訊如下:
pkg-config - return metainformation about installed libraries.需要強調的是,pkg-config 用於程式或庫的編譯和連線過程,而非執行過程。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 的使用場景及用法。
假設在系統上安裝了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...