不清楚 pkg-config 在哪里查找信息或 .pc 文件如何命名

不清楚 pkg-config 在哪里查找信息或 .pc 文件如何命名

我按照 GTK 的教程使用此命令来生成构建标志:

$ pkg-config --cflags --libs gtk+-3.0

这会输出一致的标志。通过研究,我发现在、、等效项以及变量指示的文件夹中pkg-config搜索文件。.pc/usr/lib/pkginfousr/share/pkgconfig/localPKG_CONFIG_PATH

所有文件夹均不包含 GTK 文件,且未设置环境变量。哪里可以获得pkg-config旗帜?

答案1

手册页中给出了一些很好的技巧,可以从其pkg-config自身获取此信息。

PKG-CONFIG DERIVED VARIABLES

       pc_path
              The default search path used by pkg-config  when  searching  for
              .pc files. This can be used in a query for the pkg-config module
              itself itself:
                $ pkg-config --variable pc_path pkg-config

       pcfiledir
              The installed location of the .pc file.  This  can  be  used  to
              query  the location of the .pc file for a particular module, but
              it can also be used to make .pc files relocatable.

例如,要查看您的系统/架构的实际搜索路径:

$ pkg-config --variable pc_path pkg-config | tr ':' '\n'
/usr/local/lib/x86_64-linux-gnu/pkgconfig
/usr/local/lib/pkgconfig
/usr/local/share/pkgconfig
/usr/lib/x86_64-linux-gnu/pkgconfig
/usr/lib/pkgconfig
/usr/share/pkgconfig

.pc并获取特定包文件的位置

$ pkg-config --variable pcfiledir gtk+-3.0
/usr/lib/x86_64-linux-gnu/pkgconfig

答案2

它正在找到它们/usr/lib/x86_64-linux-gnu/pkgconfig/gtk+-3.0.pc(假设您正在使用amd64)。在 Debian 上,pkg-config还会搜索目标的多架构目录,IE /usr/lib/$(dpkg-architecture -q DEB_TARGET_MULTIARCH)/pkgconfig

相关内容