Wlroots, fatal error : xdg-shell-protocol.h: No such file or directory
Wlroots, fatal error : xdg-shell-protocol.h: No such file or directory
您好,我正在构建一个基于 wlroots 的 wayland 合成器。当我尝试添加 "wlr/types/wlr_xdg_shell.h" 时,它会产生一个错误,显示:
/usr/local/include/wlr/types/wlr_xdg_shell.h:14:10: fatal error: xdg-shell-protocol.h: No such file or directory
这是一个错误吗?我尝试修改协议和项目文件夹中的 meson.build 文件。但一切都没有改变。
这是完整的日志:
ninja: Entering directory `build'
[1/2] Compiling C object 'src/25a6634@@compositor@exe/view.c.o'
FAILED: src/25a6634@@compositor@exe/view.c.o
cc -Isrc/25a6634@@compositor@exe -Isrc -I../src -I../include -I/usr/local/include -I/usr/include/libdrm -I/usr/include/pixman-1 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -g -DLOG_USE_COLOR -Wno-unused-parameter -Wno-unused-result -Wno-missing-braces -Wundef -Wvla -DWLR_USE_UNSTABLE '-DPACKAGE_VERSION="1.0.0"' -MD -MQ 'src/25a6634@@compositor@exe/view.c.o' -MF 'src/25a6634@@compositor@exe/view.c.o.d' -o 'src/25a6634@@compositor@exe/view.c.o' -c ../src/view.c
In file included from ../include/view.h:2,
from ../src/view.c:1:
/usr/local/include/wlr/types/wlr_xdg_shell.h:14:10: fatal error: xdg-shell-protocol.h: No such file or directory
14 | #include "xdg-shell-protocol.h"
| ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.
同样的问题发生在我身上一次,请确保 meson.build 中的 wayland-protocols 依赖名称与协议文件夹 meson.build 中的依赖名称相同
例如:如果您这样定义依赖项:
meson.build 在 src 目录(或你的源目录)
deps=[
server_protocols, // use this name in meson.build in protocols
wayland_server,
wlroots
]
像这样:
meson.build 协议目录中的文件
wl_protocol_dir=server_protos.get_pkgconfig_variable('pkgdatadir')
这对我有用
您好,我正在构建一个基于 wlroots 的 wayland 合成器。当我尝试添加 "wlr/types/wlr_xdg_shell.h" 时,它会产生一个错误,显示:
/usr/local/include/wlr/types/wlr_xdg_shell.h:14:10: fatal error: xdg-shell-protocol.h: No such file or directory
这是一个错误吗?我尝试修改协议和项目文件夹中的 meson.build 文件。但一切都没有改变。
这是完整的日志:
ninja: Entering directory `build'
[1/2] Compiling C object 'src/25a6634@@compositor@exe/view.c.o'
FAILED: src/25a6634@@compositor@exe/view.c.o
cc -Isrc/25a6634@@compositor@exe -Isrc -I../src -I../include -I/usr/local/include -I/usr/include/libdrm -I/usr/include/pixman-1 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -g -DLOG_USE_COLOR -Wno-unused-parameter -Wno-unused-result -Wno-missing-braces -Wundef -Wvla -DWLR_USE_UNSTABLE '-DPACKAGE_VERSION="1.0.0"' -MD -MQ 'src/25a6634@@compositor@exe/view.c.o' -MF 'src/25a6634@@compositor@exe/view.c.o.d' -o 'src/25a6634@@compositor@exe/view.c.o' -c ../src/view.c
In file included from ../include/view.h:2,
from ../src/view.c:1:
/usr/local/include/wlr/types/wlr_xdg_shell.h:14:10: fatal error: xdg-shell-protocol.h: No such file or directory
14 | #include "xdg-shell-protocol.h"
| ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.
同样的问题发生在我身上一次,请确保 meson.build 中的 wayland-protocols 依赖名称与协议文件夹 meson.build 中的依赖名称相同
例如:如果您这样定义依赖项:
meson.build 在 src 目录(或你的源目录)
deps=[
server_protocols, // use this name in meson.build in protocols
wayland_server,
wlroots
]
像这样:
meson.build 协议目录中的文件
wl_protocol_dir=server_protos.get_pkgconfig_variable('pkgdatadir')
这对我有用