我用这个命令从源代码编译了wayland
meson --buildtype=release -D prefix=$HOME/mylib -D documentation=false
然后与ninja
一起安装。在$HOME/mylib
中,我有这样的结构:
total 24K
drwxr-xr-x 6 myuser myuser 4.0K Dec 3 19:52 .
drwxr-xr-x 16 myuser myuser 4.0K Dec 4 17:41 ..
drwxr-xr-x 2 root root 4.0K Dec 3 19:52 bin
drwxr-xr-x 2 root root 4.0K Dec 3 19:52 include
drwxr-xr-x 3 root root 4.0K Dec 3 19:52 lib
drwxr-xr-x 4 root root 4.0K Dec 3 19:52 share
在bin文件夹我有wayland-scanner
,当我运行这个命令
wayland-scanner -v
我得到了这样的输出:
wayland-scanner 1.21.90
现在,当我用meson
构建其他源代码时,有道路扫描仪作为依赖项,我得到了这个错误:
../tests/meson.build:2:0: ERROR: Invalid version of dependency, need 'wayland-scanner' ['>=1.20.0'] found '1.18.0'.
这与这里的另一个wayland-scanner
相关:
/usr/bin/wayland-scanner
版本为1.18.0。命令
echo $PATH
回复以下输出:
/home/myuser/mylib/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
为什么介子找不到wayland-scanner的更新版本?使用PKG_CONFIG_PATH
不工作,与上面相同的错误
我不知道wayland包,但从描述我可以认为/usr/bin/wayland-scanner是旧安装的链接,尝试在您的环境中查找wayland-scanner扫描器二进制文件,以检查是否有某些链接未更新到新安装。
最有可能的是,在另一个构建期间,在pkg-config工具(meson搜索依赖项的标准方式)的帮助下搜索waeland -scanner(即使是可执行的二进制文件)。所以,检查一下道路扫描仪。PC已经安装,应该是/home/myuser/mylib/share/pkgconfig/wayland-scanner。pc然后,在运行构建之前,尝试更新PKG_CONFIG_PATH
export PKG_CONFIG_PAT=/home/myuser/mylib/share/pkgconfig:$PKG_CONFIG_PATH