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