pkg config的簡單應用

2022-09-19 21:42:18 字數 1731 閱讀 3256

pkg-config的簡單用法

在linux下面編譯、鏈結程式一般會用到pkg-config這個命令,那麼它究竟是幹什麼的呢?

pkg-config是乙個返回我們已經安裝庫的資訊的工具,比如庫的標頭檔案在**,鏈結它又需要到**等等資訊。

其語法如下:

pkg-config [options] library

最常用的選項有以下幾個:

(1)--cflags

cflags 即compile flags(這個是我猜的呵呵),就是說編譯的選項,包括預處理和編譯兩步的flags,也就是說加上這個選項會列印出預處理和編譯這個library需要的所有依賴,主要包括巨集和標頭檔案

(2)--libs

--libs即linked librarys,這個跟--cflags基本上一樣,不過輸出的結果是該library需要鏈結庫的資訊(當然也是庫了)

(3)--print-errors

這個就不多說了,就是當pkg-config執行失敗後返回的資訊

下面,我以gtk庫為例演示一下這些選項

$pkg-config --cflags gtk+-2.0

-pthread -i/usr/include/gtk-2.0 -i/usr/lib/i386-linux-gnu/gtk-2.0/include -i/usr/include/atk-1.0 -i/usr/include/cairo -i/usr/include/gdk-pixbuf-2.0 -i/usr/include/pango-1.0 -i/usr/include/gio-unix-2.0/ -i/usr/include/glib-2.0 -i/usr/lib/i386-linux-gnu/glib-2.0/include -i/usr/include/pixman-1 -i/usr/include/freetype2 -i/usr/include/libpng12

$pkg-config --libs gtk+-2.0

-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0

$gtk-config --cflags --libs gtk+-2.0

-pthread -i/usr/include/gtk-2.0 -i/usr/lib/i386-linux-gnu/gtk-2.0/include -i/usr/include/atk-1.0 -i/usr/include/cairo -i/usr/include/gdk-pixbuf-2.0 -i/usr/include/pango-1.0 -i/usr/include/gio-unix-2.0/ -i/usr/include/glib-2.0 -i/usr/lib/i386-linux-gnu/glib-2.0/include -i/usr/include/pixman-1 -i/usr/include/freetype2 -i/usr/include/libpng12  -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0

其中第三種是最常用的方法,我們比較以上三條命令的輸出,也不難看出各個選項的作用。

pkg config的學習之路

pkg config是編譯應用程式和庫時使用的輔助工具。它可以幫助我們在命令列中插入正確的編譯器選項,以便應用程式可以使用諸如gcc o test test.c pkg config libs cflags glibc 2.29 的命令,其中 cflags和 libs分別指定cflags引數和庫檔案...

關於pkg config的使用示例

1.gcc命令列裡的使用 gcc g main.c o main pkg config gl glu glut cflags libs 2.在configure.ac中的使用 pkg config path usr local 設定pkg config的檢索路徑 pkg check modules ...

Linux下的pkg config簡介

首先看一下 pkg config 的介紹資訊。pkgconfig 軟體包的描述資訊如下 a tool for determining compilation options.pkg config手冊 man pkg config 命令 中的介紹資訊如下 pkg config return metai...