【问题标题】:Where do the pkg-config targets get defined?pkg-config 目标在哪里定义?
【发布时间】:2017-06-29 09:57:51
【问题描述】:

当我执行命令时

pkg-config --variable pc_path pkg-config

输出是

/usr/lib64/pkgconfig:/usr/share/pkgconfig

但是,我的系统上还有另外两个 pkgconfig 目录:/usr/lib/pkgconfig/usr/local/lib/pkgconfig

如果我尝试

echo $PKG_CONFIG_PATH

结果是

未定义的变量

我也试过了

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig 

但反应是

导出:找不到命令。

现在,我已经多次构建了 Gstreamer,它会将 元数据文件 (gstreamer-1.0.pc) 到另一个 pkgconfig 文件夹 (usr/local/lib/pkgconfig)。 (我已经能够通过修改配置文件,在 libdir 定义中将 lib 更改为 lib64 来克服这个问题。)但我更愿意了解我的系统而不是尝试解决方法。

那么两个问题:pkg-config 程序从哪里得到它的目标目录?

以及为什么以及如何将元数据文件放入 pkg-config 程序未明确指示的目录中?

【问题讨论】:

  • 感谢@Grisha Levit 编辑了我提出的问题。给出的答案都没有真正回答我的两个问题,尽管我很欣赏为我找到解决方案的努力。

标签: c linux gstreamer centos7 pkg-config


【解决方案1】:

由于该变量不存在,因此命令不起作用 首先检查变量是否存在以执行此操作 执行命令 环境 root@localhost:/etc/apt# 环境 如果路径未在 env 中声明 然后做类似的事情

root@localhost:/etc/apt# PKG_CONFIG_PATH=/usr/local/lib/pkgconfig root@localhost:/etc/apt# export PKG_CONFIG_PATH root@localhost:/etc/apt# echo $PKG_CONFIG_PATH /usr/local/lib/pkgconfig root@localhost:/etc/apt# 环境

希望这对你有用 如需进一步帮助,请发布有错误的查询

【讨论】:

  • 我发现我的命令导出不起作用,因为我使用的是 tsch。如果我切换到 bash,我可以使用 export。
【解决方案2】:

当你安装一个 foo 包时, foo 包有一个合适的 foo.pc 被安装在默认的 pkgconfig 目录中。如您所知,如果一个包将其 *.pc 文件放在自定义位置,您应该相应地设置您的 PKG_CONFIG_PATH。因此,pkg-config 不仅会查看默认目录,还会查看您在 PKG_CONFIG_PATH 中指定的自定义路径。本指南解释得很好:

pkg-config guide

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 2018-04-15
    相关资源
    最近更新 更多