除标准选项外,是否有任何方法可以在 *.pc 文件中定义自己的选项

Is there any way to define own options in *.pc files except standard options

我正在尝试制作一个 .pc 文件并想定义一个标志 ldflags 并像这样使用它

pkg-config package --ldflags

但显示的是 unknown option ldflags。 有没有办法在pc文件中定义我自己的选项。

.pc文件有特殊格式,检查here:

The file format contains predefined metadata keywords and freeform variables.

关键字是固定的,例如Cflags 其中大部分对应于 pkg-config 工具选项,例如--cflags。但是变量:

... can be used by the keyword definitions for flexibility or to store data not covered by pkg-config

因此,可以添加自己的,例如我创建了最小可能的一个(名称、版本、描述是必需的关键字):

$ cat test.pc
Name: test
Version: 1
Description: test
aaa=bbb

$ pkg-config --variable=aaa
bbb

可以使用 --print-variables 选项列出所有内容(有趣的是 pcfiledir 变量是自动添加的):

$ pkg-config --print-variables test.pc
aaa
pcfiledir

$ pkg-config --variable=pcfiledir
.

它甚至可以使用另一个变量(重新)定义一个变量:

$ cat test.pc
Name: test
Version: 1
Description: test
aaa=bbb${ccc}

$ pkg-config test.pc --variable=aaa --define-variable=ccc=xxx
bbbxxx  

想知道您的用例吗?因为此文件的内容仅用于保存有关某些包具有的依赖项的元数据。也许您应该将这些标志添加到 LibsLibs.private 关键字?