configure一般都是一個(gè)腳本,執(zhí)行時(shí)可以傳入必要的參數(shù)告知配置項(xiàng)目。一般的開(kāi)源軟件,下載完源代碼,解壓后都會(huì)在解壓后目錄中找到configure文件,執(zhí)行。/configure文件就會(huì)生成Makefile文件,而configure腳本在檢查相應(yīng)環(huán)境時(shí)會(huì)通過(guò)pkg-config的工具來(lái)檢測(cè)相應(yīng)依賴(lài)環(huán)境。
pkg-config這一工具是用來(lái)檢索系統(tǒng)中安裝庫(kù)文件的信息。其主要功能如下:
1、檢查庫(kù)的版本號(hào)。如果所需要的庫(kù)的版本不滿(mǎn)足要求,它會(huì)打印出錯(cuò)誤信息
,避免鏈接錯(cuò)誤版本的庫(kù)文件。
2、獲得編譯預(yù)處理參數(shù),如宏定義,頭文件的位置。
3、獲得鏈接參數(shù),如庫(kù)及依賴(lài)的其它庫(kù)的位置,文件名及其它一些連接參數(shù)。
4、自動(dòng)加入所依賴(lài)的其它庫(kù)的設(shè)置。
由于使用pkg-config工具來(lái)獲得庫(kù)的選項(xiàng),所以不論庫(kù)安裝在什么目錄下,都可以使用相同的編譯和連接命令,帶來(lái)了編譯和連接界面的統(tǒng)一。但使用pkg-config工具提取庫(kù)的編譯和連接參數(shù)有兩個(gè)基本的前提:
1、庫(kù)本身在安裝的時(shí)候必須提供一個(gè)相應(yīng)的。pc文件,如果沒(méi)有。pc文件的軟件則一般是不支持pkg-config工具的使用的。
2、pkg-config必須知道要到哪里去尋找此。pc文件
pkg_config_path:環(huán)境變量PKG_CONFIG_PATH是用來(lái)設(shè)置。pc文件的搜索路徑的,pkg-config按照設(shè)置路 徑的先后順序進(jìn)行搜索,直到找到指定的。pc 文件為止。這樣,庫(kù)的頭文件的搜索路徑的設(shè)置實(shí)際上就變成了對(duì)。pc文件搜索路徑的設(shè)置。
下面就針對(duì)一個(gè)具體的情況來(lái)說(shuō)明問(wèn)題:在很多人編譯GTK程序時(shí)都會(huì)出現(xiàn)說(shuō)gtk.h文件找不到,之所以會(huì)出現(xiàn)這種問(wèn)題就歸咎于環(huán)境變量沒(méi)有配 置,我們通過(guò)上面的敘述,首先我們要做的就是找到其對(duì)應(yīng)的。pc文件,在終端中輸入pkg-config --modversion gtk+-2.0,提示找不到xproto.pc文件,需要把包含該文件的目錄放到PKG_CONFIG_PATH里,搜索了一下,該文件在/usr /share/pkgconfig下,那么我們就改環(huán)境變量嘍:export PKG_CONFIG=/usr/local/bin/pkg-config
export PKG_CONFIG_PATH=/usr/share/pkgconfig:/usr/lib/pkgconfig,好了,這樣一切都OK了,
在我們編譯對(duì)應(yīng)程序時(shí),輸入的命令為gcc Demo.c -o Demo `pkg-config --cflags --libs --gtk+-2.0`
新聞熱點(diǎn)
疑難解答
圖片精選