我如何知道 .pc 文件的安装位置?这些文件放在不同操作系统的不同位置。目标是能够在安装目标中使用$(INSTALL) mylib.pc $$(pkg-config --pcdir)
之类的内容。我以为pkg-config
能以某种方式告诉我,但找不到任何东西。
我正在寻找可在普通Makefile中使用的“独立”解决方案(不得要求autotools或类似产品提供支持)。
答案 0 :(得分:11)
从pkg-config 0.24开始,您可以执行“pkg-config --variable = pc_path pkg-config”。
答案 1 :(得分:5)
更新:显然现在有办法实现这一目标:
pkg-config --variable pc_path pkg-config
在bug report中找到(见评论#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;}'
答案 2 :(得分:3)
它应该进入$ {libdir} / pkgconfig(即$ {prefix} / lib / pkgconfig)
基本上如果您安装库并且它们都在$ {libdir}中,那么您的.pc文件应该在$ {libdir} / pkgconfig中,而不是其他地方。
答案 3 :(得分:1)
不幸的是,对于库存pkg-config
安装(版本0.23),没有办法提取默认的“pc路径”,而不是在二进制文件上运行strings
(例如{{1 }})。
如果您能够安装自定义版本,只需对其进行修补,以便在使用适当选项运行时写出strings /usr/bin/pkg-config | grep '/usr/.*/pkgconfig'
的值。
另一个选项,可能对你没有帮助(但我完全没有提到),是在调用PKG_CONFIG_PC_PATH
时设置PKG_CONFIG_PATH
环境变量。