9

我怎么知道在哪里安装我的.pc文件?这些文件放在不同操作系统的不同位置。目标是能够$(INSTALL) mylib.pc $$(pkg-config --pcdir)在安装目标中使用类似的东西。我以为pkg-config能以某种方式告诉我,但找不到任何东西。

我正在寻找可在普通 Makefile 中使用的“独立”解决方案(必须不需要自动工具或类似工具的支持)。

4

4 回答 4

12

从 pkg-config 0.24 开始,您可以执行“pkg-config --variable=pc_path pkg-config”。

https://bugs.freedesktop.org/show_bug.cgi?id=14975

于 2010-09-06T22:00:30.527 回答
6

更新:显然现在有一种方法可以做到这一点:

pkg-config --variable pc_path pkg-config

在这个错误报告中找到(见评论#4)。当前的手册页似乎记录了这一点。

原答案:

可怕的hackish解决方案(假设bourne shell):

pkg-config --debug 2>&1 |grep Scanning | sed -e 's/Scanning directory //' -e "s/'//g"

这可能会为您提供多个位置。

由@just某人编辑

较短的版本

pkg-config --debug 2>&1 | sed -ne '/Scanning directory /s///p'

并在第一个目录之后停止:

pkg-config --debug 2>&1 | sed -ne '/Scanning directory /{s///p;q;}'
于 2010-03-01T23:20:14.970 回答
3

它应该进入 ${libdir}/pkgconfig(即 ${prefix}/lib/pkgconfig)

基本上,如果您安装库并将它们放入 ${libdir} 中,那么您的 .pc 文件应该在 ${libdir}/pkgconfig 中而不是其他任何地方。

于 2010-05-28T14:06:06.580 回答
1

不幸的是,对于股票pkg-config安装(对于版本 0.23),没有办法提取默认的“pc 路径”,除非strings在二进制文件上运行(例如,strings /usr/bin/pkg-config | grep '/usr/.*/pkgconfig')。

如果您能够安装自定义构建,只需修补它以PKG_CONFIG_PC_PATH使用适当的选项写出运行时的值。

另一个可能对您没有帮助的选项(但为了完整性我还是会提到),是PKG_CONFIG_PATH在调用pkg-config.

于 2010-02-28T22:21:38.653 回答