简介
pkg-config是编译应用程序和库时使用的辅助工具。它可以帮助我们在命令行中插入正确的编译器选项,以便应用程序可以使用诸如gcc -o test test.c `pkg-config --libs --cflags glibc-2.29`
的命令,其中–cflags和–libs分别指定CFLAGS参数和库文件。这样我们就不必通过硬编码来找到glib(或其他库)。它与语言无关,因此可用于定义文档的位置。
详解
那么pc-config是从哪儿知道这些信息的呢?它是从名为xxx.pc这个文件中查找到的。上面的例子中,它是从glibc-2.29.pc文件中查知的。
那pkg-config 又怎么会知道opencv.pc这个文件呢?
- 默认情况下,pkg-config首先在prefix/lib/pkgconfig/中查找相关包对应的相应的文件。在linux上上述路径名为 /usr/lib/pkgconfig/。
- 若是没有找到,它也会到PKG_CONFIG_PATH这个环境变量所指定的路径下去找。若是没有找到,它就会报错。
设置环境变量PKG_CONFIG_PATH的方法为:
export PKG_CONFIG_PATH=/your/pathname:$PKG_CONFIG_PATH
如果想要让该环境变量永久生效,可以在/etc/profile文件中添加上面的语句,然后执行source /etc/profile
让其立即生效。
编写pc文件
这里通过一个示例讲解一下如何编写pc文件。pc文件只需5个内容:Name、Description、Version