歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux中的configure、pkg-config、pkg_config_path

Linux中的configure、pkg-config、pkg_config_path

日期:2017/2/28 15:44:19   编辑:Linux教程

提到這三個名詞我相信搞Linux的人一定不會陌生,重要性不言而喻,下面我就要總結下三者之間的關系。

configure一般都是一個腳本,執行時可以傳入必要的參數告知配置項目。一般的開源軟件,下載完源代碼,解壓後都會在解壓後目錄中找到configure文件,執行./configure文件就會生成Makefile文件,而configure腳本在檢查相應環境時會通過pkg-config的工具來檢測相應依賴環境。

pkg-config這一工具是用來檢索系統中安裝庫文件的信息。其主要功能如下:

1、檢查庫的版本號。如果所需要的庫的版本不滿足要求,它會打印出錯誤信息

,避免鏈接錯誤版本的庫文件。

2、獲得編譯預處理參數,如宏定義,頭文件的位置。

3、獲得鏈接參數,如庫及依賴的其它庫的位置,文件名及其它一些連接參數。

4、自動加入所依賴的其它庫的設置。

由於使用pkg-config工具來獲得庫的選項,所以不論庫安裝在什麼目錄下,都可以使用相同的編譯和連接命令,帶來了編譯和連接界面的統一。但使用pkg-config工具提取庫的編譯和連接參數有兩個基本的前提:

1、庫本身在安裝的時候必須提供一個相應的.pc文件,如果沒有.pc文件的軟件則一般是不支持pkg-config工具的使用的。

2、pkg-config必須知道要到哪裡去尋找此.pc文件

pkg_config_path:環境變量PKG_CONFIG_PATH是用來設置.pc文件的搜索路徑的,pkg-config按照設置路徑的先後順序進行搜索,直到找到指定的.pc 文件為止。這樣,庫的頭文件的搜索路徑的設置實際上就變成了對.pc文件搜索路徑的設置。

下面就針對一個具體的情況來說明問題:在很多人編譯GTK程序時都會出現說gtk.h文件找不到,之所以會出現這種問題就歸咎於環境變量沒有配置,我們通過上面的敘述,首先我們要做的就是找到其對應的.pc文件,在終端中輸入pkg-config --modversion gtk+-2.0,提示找不到xproto.pc文件,需要把包含該文件的目錄放到PKG_CONFIG_PATH裡,搜索了一下,該文件在/usr/share/pkgconfig下,那麼我們就改環境變量喽:export PKG_CONFIG=/usr/local/bin/pkg-config

export PKG_CONFIG_PATH=/usr/share/pkgconfig:/usr/lib/pkgconfig,好了,這樣一切都OK了,

在我們編譯對應程序時,輸入的命令為gcc Demo.c -o Demo `pkg-config --cflags --libs --gtk+-2.0`

Copyright © Linux教程網 All Rights Reserved