一、pkg-config
pkg-config是一个命令行工具,主要用于帮助开发者在编译依赖于特定库的软件时,自动获取和设置正确的编译器选项和链接器选项。它的主要作用在于简化编译过程,确保程序能够正确地找到所需的头文件和库文件,尤其是在库文件可能安装在非标准位置的情况下。
pkg-config版本查询:
有时候会看到诸如此类的编译命令:
gcc source.c -o source `pkg-config --libs --cflags glib-2.0`
那么
`pkg-config --libs --cflags glib-2.0`
得到的结果是什么呢?其结果又是如何得到的呢?这样做的好处是什么呢?
二、pkg-config已支持的库
若用户安装了软件,则可以通过pkg-config查看:pkg-config --list-all
三、库的*.pc
pkg-config查找对应库的*.pc文件,例如glib-2.0.pc。该文件内声明了头文件目录、库文件目录以及库名称。例如查看该文件的内容,验证下
/usr/lib/x86_64-linux-gnu/pkgconfig/glib-2.0.pc
prefix=/usr
libdir=${prefix}/lib/x86_64-linux-gnu
includedir=${prefix}/include
bindir=${prefix}/bin
glib_genmarshal=${bindir}/glib-genmarshal
gobject_query=${bindir}/gobject-query
glib_mkenums=${bindir}/glib-mkenums
Name: GLib
Description: C Utility Library
Version: 2.64.6
Requires.private: libpcre >= 8.31
Libs: -L${libdir} -lglib-2.0
Libs.private: -pthread
Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include
查找glib-2.0库的头文件目录和库文件目录以及库名称:pkg-config --libs --cflags glib-2.0
头文件目录:-I/usr/include/glib-2.0
库文件目录:-I/usr/lib/x86_64-linux-gnu/glib-2.0/include
库名称:-lglib-2.0
回到最开始的问题,我们编译source.c文件需要使用glib-2.0库文件,使用这个库文件需要找对应的头文件目录和库文件目录,有两种方式可以找到。
- 第一种方式
通过这个dpkg -L 命令去找库的头文件目录和库文件目录:sudo dpkg -L libglib2.0-dev
- 第二种方式
通过pkg-config命令去查找,这种方法更加简单、方便。
标签:glib,文件目录,--,pkg,2.0,config From: https://www.cnblogs.com/caojun97/p/18247182