了解 pkg-config Linux 命令
“pkg-config 是一个用于编译库和应用程序的便捷工具,特别是对于开发人员而言。它充当帮助程序,确保轻松地将正确的编译器选项插入到命令行中,而不是硬编码值,例如在哪里找到不同的库。
pkg-config 是免费软件,支持不同的平台,包括类 Unix 系统、Windows、Linux 和 Mac OS X。要使用 pkg-config,您只需要安装 glib 或工作的 C 库和编译器。让我们在下面的部分中看看常见用法并更多地了解 pkg-config。 ”
安装 pkg-config
您可以从 apt 数据库安装 pkg-config:
首先,更新 apt 数据库。
接下来,安装 pkg-config。
pkg-config 说明
pkg-config 是一个帮助工具,主要收集有关计算机系统上已安装库的元数据,并将其提供给用户以便于组装和集成。每个系统都安装了不同的库,编译和链接库需要使用 pkg-config。
此外,将 pkg-config 与不同的软件包一起安装使得开发人员可以轻松采用 API。准确地说,pkg-config 的工作原理是提供编译程序并将其链接到不同库所需的详细信息。因此,它会获取有关库的元数据,而不是在终端上进行硬编码。
pkg-config 使用示例
pkg-config 从中检索信息的元数据文件具有 .pc 扩展名,命令中指定的名称就是元数据文件。
1.打印链接标志
指定-libs选项来显示与给定包关联的链接标志。在我们的示例中,我们将使用 OpenCV C++ 库。
显示的输出链接标志是:
2.打印编译标志
-cflags 打印编译标志和编译包所需的关联预处理器以及其依赖项的标志。
3.获取库的版本
您可以使用 —modversion 标志检查库的版本。
4.打印错误
您可以使用以下命令打印错误消息,例如缺少依赖项或模块:
要在标准输出而不是默认的标准错误中打印错误,请使用 —errors-to-stdout 选项而不是 —print-errors。
5.显示包中的变量
要查看给定包中包含的所有变量,请使用 —print-variables 选项:
它将输出包中包含的任何变量的所有名称。
6.列出包
要显示系统上所有具有 .pc 扩展名的软件包,请使用 –list-all 选项
输出包含 PKG_CONFIG_PATH 变量路径中列出的所有包。
您可以获取包的 .pc 文件中声明的变量的值。使用 —variable=[variable-name] [name-of-package] ,如下例所示。
您可以使用 pkg-config 为 .pc 文件设置全局变量值。例如,要在我们的 OpenCV 库中声明一个名为 prefix 的变量,我们可以使用以下命令:
9.其他选项
–help:它打开 pkg-config 的帮助消息。
pkg-config 文件的格式
如果您有一个模块(在我们的示例中名为 sample),该模块将有一个包含其元数据的 .pc 文件。
模块使用特定的格式。此外,模块具有特定的关键字,包括:
名称:它代表给定库或包的名称。在我们的例子中,它是一个样本。
描述:它代表库或包的描述。
版本:库有不同的版本,使用此关键字指定版本。
URL:URL 链接到外部位置以下载库或获取有关其使用的更多详细信息。
需要:如果该包需要其他包,则会在此处指定。
Libs:包的链接标志
Cflags:与包关联的编译器标志。
冲突:它突出显示可能与其冲突的任何包。
Requires.private 表示其他应用程序无法使用的所需私有包。