当文件夹列在 PKG_CONFIG_PATH 中时,pkg-config 找不到包文件

当文件夹列在 PKG_CONFIG_PATH 中时,pkg-config 找不到包文件

这是我的 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

相关内容