我正在Gnome Builder中使用gtk+-3.0构建一个小应用程序,但我想使用libzip来实现一些功能。但显然介子不接受添加libzip。请看我的代码片段:
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和一个依赖项,但是meson抱怨它找不到zip.h。
我在ArchLinux中运行它。
更新如果我使用介子手动编译,它可以工作。此问题仅在GNOME Builder内部出现。
发布于 2021-09-18 15:14:06
如果您可以直接使用meson构建,而不能使用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。
默认情况下,
会在/lib/pkgconfig和/usr/lib/pkgconfig中搜索,但有些sysroot会将它们安装在不同的位置。基于Debian的使用路径,比如/usr/lib/x86_64-linux-gnu/pkgconfig。其他系统可能使用诸如/usr/lib64/pkgconfig之类的路径。
因此,如果以上都不是libzip.pc,那么您应该
...在Preferences -> SDK中配置新的sysroot,以允许生成器使用它。
并且它将登陆到~/.config/gnome-builder/sysroot/general.conf
PS检查所有*.pc文件的位置也很有用:
$ for f in $(locate *.pc); do dirname $f; done | uniq并根据上面的内容添加这些路径。
发布于 2021-12-15 09:28:13
如果这是一个flatpak环境,你必须在那里安装libzip。打开flatpak文件并将您的库添加到modules部分。然后它将在flatpak中可用。
https://stackoverflow.com/questions/69227977
复制相似问题