前言:
在进行工程构建的时候,往往需要指定头文件搜索路径,库文件路径,库文件名等等一系列编译链接需要的参数。我们可以记住这些路径和名称,但是如果这些值有变更,那么就需要手动修改makefile或者cmake文件以进行调整。
此外,我们可以通过pkg-config工具来协助完成这些路径和名称的动态查找,那么makefile里和cmake文件里的值就是动态的了。
pkg-config是一个可执行命令行工具,具体的用法见
pkg-config -h
如何使用pkg-config
查看头文件选项
pkg-config --cflags gstreamer-1.0
-pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
查看链接选项
pkg-config --libs gstreamer-1.0
-lgstreamer-1.0 -lgobject-2.0 -lglib-2.0
什么是 .pc 文件
上面提到的 --cflags 和 --libs 选项是如何获得结果中的信息呢?其实,pkg-config 工作的原理是每个库都要提供自己的 .pc文件,这个文件里描述了在使用这个库时需要用到的链接选项是什么,头文件路径又在哪里。
比如 /usr/lib/x86_6