pkg-config
外观
![本页使用了标题或全文手工转换](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
此條目没有列出任何参考或来源。 (2023年7月10日) |
pkg-config 是一个在源代码编译时查询已安装的库的使用接口的计算机工具软件。pkg-config 原本是设计用于 Linux 的,但现在在各个版本的 BSD、windows、Mac OS X 和 Solaris 上都有着可用的版本。
它输出已安装的库的相关信息,包括:
工作原理
[编辑]当安装一个库时(例如从 RPM,deb 或其他二进制包管理系统),会包括一个后缀名为 pc
的文件,该文件会被放入某个文件夹下(取决于你的系统设置)。例如,在 Linux 为该软件的库文件所在文件夹 lib
之下的子文件夹 pkgconfig
。并把该子文件夹加入 pkg-config 的环境变量 PKG_CONFIG_PATH
作为搜索路径,例如在 bash 配置文件中加入一行:
export PKG_CONFIG_PATH=/usr/local/`库的名字`/lib/pkgconfig:$PKG_CONFIG_PATH
在这个 .pc
文件里包含有数个条目。这些条目通常包含用于其他使用这个库的程序编译时需要的库设置,以及头文件的位置,版本信息和一个简介。
这是一个用于 libpng 的 .pc
文件的样例:
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${exec_prefix}/include
Name: libpng
Description: Loads and saves PNG files
Version: 1.2.8
Libs: -L${libdir} -lpng12 -lz
Cflags: -I${includedir}/libpng12
这个文件告诉我们这些库可以在 /usr/local/lib
找到,头文件可以在 /usr/local/include
里找到,库的名字是 libpng12 并且版本号是 1.2.8。它也提供了用于编译依赖于 libpng 的源代码时需要的链接器参数。
这是一个编译时使用 pkg-config 的样例:
gcc -o test test.c $(pkg-config --libs --cflags libpng)
[编辑]
![]() | 这是一篇与Linux相关的小作品。您可以通过编辑或修订扩充其内容。 |