在Ubuntu下通过apt-get install进行依赖库的安装,在依赖安装成功后会在指定的目录生成一个.pc为后缀的pkg-config相关文件.
例如Ubuntu下的glib-2.0(glib的依赖库)
通过搜索可以找到在系统目录: /usr/lib/x86_64-linux-gnu/pkgconfig/下存在着glib-2.0.pc.
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
然后运行: pkg-config --cflags --libs glib-2.0
t@t:~/Develop/bluetooth/BlueZ_Bluetooth_Implementation-master$ pkg-config --cflags --libs glib-2.0
-I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -lglib-2.0
如上所示,通过pkg-config命令配合对应的.pc文件进行该依赖库的编译参数导出,在上述例子中是导出了头文件路径和静态库名称.
简化和规范了我们在日常开发中对于第三方库的引入方式.
当然我们也可以对自己开发的library写对应的.pc文件,然后通过pkg-config进行管理,对于详细的内容请通过下面的官方链接进行深入地学习:
Guide to pkg-config