问题描述
我正在尝试制作一个 .pc 文件并想定义一个标志 ldflags
并像这样使用它
pkg-config package --ldflags
但它显示 unkNown option ldflags
。
有没有办法在 pc 文件中定义我自己的选项。
解决方法
.pc 文件具有特殊格式,请检查 here:
文件格式包含预定义的元数据关键字和自由格式 变量。
关键字是固定的,例如Cflags,其中大部分对应于 pkg-config 工具选项,例如--cflags。但是变量:
... 可以由关键字定义使用以获得灵活性或存储 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
想知道您的用例吗?因为此文件的内容仅用于保留有关某些包具有的依赖项的元数据。也许您应该将这些标志添加到 Libs 或 Libs.private 关键字?