【问题标题】:How to add libzip as dependency in meson build system如何在介子构建系统中添加 libzip 作为依赖项
【发布时间】:2021-11-12 14:24:51
【问题描述】:

我正在 Gnome Builder 中使用 gtk+-3.0 构建一个小应用程序,但我想将 libzip 用于某些功能。但显然介子不接受添加 libzip。看我的sn-p:

foo_deps = [
  dependency('libzip', version: '>= 1.5.0'),
  dependency('gio-2.0', version: '>= 2.50'),
  dependency('gtk+-3.0', version: '>= 3.22')
]

这是我的错误信息:

../../../../../../Projetos/foo/src/meson.build:8:0: ERROR: Dependency "libzip" not found, tried pkgconfig and cmake

但 libzip 被列为 pkgconfig 包:

[vinicius@maclinux ~]$ pkg-config --list-all | grep libzip
libzip                         libzip - library for handling zip archives

还有:

[vinicius@maclinux ~]$ pkg-config --libs libzip
-lzip 

最后:

[vinicius@maclinux ~]$ ls -l /usr/include | grep zip.h
-rw-r--r--  1 root root  26491 mar  2  2021 zip.h

我被困住了。我在互联网上找不到任何关于 libzip 一起使用介子的帮助。我试图忽略 libzip 和一个依赖项,但介子抱怨它找不到 zip.h。

我在 ArchLinux 中运行它。

[更新] 如果我使用介子手动编译,它可以工作。该问题仅出现在 GNOME Builder 内部。

【问题讨论】:

    标签: archlinux meson-build libzip gnome-builder


    【解决方案1】:

    如果您可以直接使用介子构建而不能使用 GNOME 构建器 - 这表明在后一种情况下缺少 PKG_CONFIG_PATH 配置,即环境带有搜索 *.pc(pkg 配置文件)的路径列表的变量。

    检查 libzip.pc 所在的位置:

    $ apt-file search libzip.pc
    $ libzip-dev: /usr/lib/x86_64-linux-gnu/pkgconfig/libzip.pc
    

    我从未使用过 GNOME builder,但我找到了以下文档页面:Use Custom Sysroot

    默认情况下 pkg-config 将在 /lib/pkgconfig 中搜索并 /usr/lib/pkgconfig 但某些 sysroot 将它们安装在不同的位置 地点。基于 Debian 的使用路径,例如 /usr/lib/x86_64-linux-gnu/pkgconfig.其他系统可能会使用路径,例如 作为 /usr/lib64/pkgconfig。

    所以,如果 libzip.pc 在以上都没有,你应该

    ... 在 Preferences -> SDKs 中配置一个新的 sysroot 以允许 Builder 使用它。

    它将登陆到~/.config/gnome-builder/sysroot/general.conf

    PS 检查所有 *.pc 文件的位置也很有用:

    $ for f in $(locate *.pc); do dirname $f; done | uniq
    

    并根据上述添加这些路径。

    【讨论】:

      【解决方案2】:

      如果这是一个 flatpak 环境,你必须在那里安装libzip。打开 flatpak JSON 文件并将您的库添加到 modules 部分。然后它将在 flatpak 中可用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-01-12
        • 1970-01-01
        • 1970-01-01
        • 2015-08-01
        • 2014-10-18
        • 2011-04-24
        • 1970-01-01
        相关资源
        最近更新 更多