PKG_CONFIG_PATH 环境变量

PKG_CONFIG_PATH 环境变量

如果您在非标准前缀中安装了软件,请考虑调整 PKG_CONFIG_PATH 环境变量。

这是什么意思 ?

答案1

PKG_CONFIG_PATHpkg-config是一个环境变量,它指定将在其中搜索其 .pc 文件的附加路径。

此变量用于扩充 pkg-config 的默认搜索路径。在典型的 Unix 系统上,它将在目录/usr/lib/pkgconfig和中进行搜索/usr/share/pkgconfig。这通常会涵盖系统安装的模块。但是,某些本地模块可能安装在不同的前缀中,例如/usr/local。在这种情况下,有必要在搜索路径前面加上前缀,以便 pkg-config 可以找到 .pc 文件。

pkg-config程序用于检索系统中已安装库的信息。其主要用途pkg-config是提供编译和链接程序到库所需的详细信息。此元数据存储在 pkg-config 文件中。这些文件的后缀为 .pc,位于 pkg-config 工具已知的特定位置。

要检查该PKG_CONFIG_PATH值,请使用以下命令:

echo $PKG_CONFIG_PATH

要设置PKG_CONFIG_PATH值,请使用:

export PKG_CONFIG_PATH=/usr/lib/pkgconfig

或者

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

答案2

要查看 pkg-config(版本 0.24 或更高版本)默认搜索已安装库的位置,请使用以下命令:

pkg-config --variable pc_path pkg-config

要添加到该路径,请设置PKG_CONFIG_PATH环境变量。 man 文件指出PKG_CONFIG_PATH

用冒号分隔的(在 Windows 上用分号分隔)用于搜索 .pc 文件的目录列表。搜索路径后将始终搜索默认目录;默认目录为 libdir/pkgconfig:datadir/pkgconfig,其中 libdir 是 pkg-config 所在的 libdir,datadir 是安装 pkg-config 所在的 datadir。

答案3

第一个答案在技术上不够明确。从手册页(打开终端,输入man pkg-config):

pkg-config从特殊元数据文件中检索有关软件包的信息。这些文件以软件包命名,并具有扩展名。 .pc在大多数系统上, pkg-config 会在/usr/lib/pkgconfig、和中查找这些文件。它还会在环境变量指定的冒号分隔(在 Windows 上为分号分隔)目录列表中查找。/usr/share/pkgconfig/usr/local/lib/pkgconfig/usr/local/share/pkgconfigPKG_CONFIG_PATH

因此该pkg-config程序不在PKG_CONFIG_PATH目录中;但是,如果您安装了一个库,为了使脚本中使用它的信息automake可访问,它需要位于pkg-config可知的目录中。

答案4

我查看了我的 64 位系统上的手册页,但有点困惑。它有一行内容:

pkg-config 从特殊元数据文件中检索有关软件包的信息。这些文件以软件包命名,扩展名为 .pc。默认情况下,pkg-config 在目录 prefix/lib/pkgconfig 中查找这些文件;它还将在 PKG_CONFIG_PATH 环境变量指定的冒号分隔(在 Windows 上为分号分隔)目录列表中查找。

我以为它总是在目录 lib/pkgconfig 中查找。结果发现它就是目录本身。就我而言,我试图编译 hello world gtk 教程。我找到我想要的文件,例如

locate gtk | grep '\.pc'

调查结果如下:

/usr/lib/x86_64-linux-gnu/pkgconfig/gtk+-3.0.pc

最后就是做出口。

export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig/

相关内容