pkg-config就是用来解决编译链接界面不统一问题的一个工具。
比如我刚刚在Ubuntu上安装了opencv,当我用下面的command line编译时出错。
gcc -o face face.c
错误信息为:face.c:3:18: fatal error: cv.h: No such file or directory。虽然我已经安装了opencv,但是我并没有告知程序去哪里找cv.h这个文件。这就可以通过pkg-config来解决这个问题。如下所示
gcc -o face face.c `pkg-config opencv --libs --cflags`
当我执行pkg-config opencv --libs --cflags的结果如下
-I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core
这就是opencv程序需要链接的库。
opencv的库文件通常放在/usr/local/lib下面,头文件通常放在/usr/local/include/opencv下面。如果想要查看已安装的opencv的版本,可以通过如下命令来查看。
pkg-config --modversion opencv