这是我的 PKG_CONFIG_PATH 内容:
/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
下面是输出locate lv2.pc
(lv2 是我尝试链接的库)
/usr/local/lib/pkgconfig/lv2.pc
但这是输出pkg-config --modversion lv2
Package lv2 was not found in the pkg-config search path.
Perhaps you should add the directory containing `lv2.pc'
to the PKG_CONFIG_PATH environment variable
No package 'lv2' found
有什么建议吗?我正在运行 gentoo。提前感谢大家的帮助!!
答案1
手册上的说法有所不同,你可以为 PKG_CONFIG_PATH 指定多个路径
来自 man-pkgconfig
PKG_CONFIG_PATH 以冒号分隔(在 Windows 上以分号分隔)的用于搜索 .pc 文件的目录列表。搜索路径后将始终搜索默认目录;
然而,PKG_CONFIG_LIBDIR 却不是这样。
PKG_CONFIG_LIBDIR 替换默认的 pkg-config 搜索目录。
答案2
PkgConfig 只能理解变量中文件夹的一个位置,不像 PATH 的语法。您需要将其设置为全部遗憾的是,您的 .pc 文件是。
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
答案3
/usr/local/lib
是一个转移注意力的话题,为什么文件在那里而不在/usr/lib
?
emerge media-libs/lv2
答案4
当 PKG_CONFIG_PATH 正确但只有 sudo 才能找到包时,也会发生这种情况。发生这种情况是因为/usr/local/lib/pkgconfig
权限不正确。对于这些情况,解决方法是:
chmod 645 /usr/local/lib/pkgconfig