Wlroots, неустранимая ошибка: xdg-shell-protocol.h: нет такого файла или каталога

#c #linux #wayland #meson-build

#c #linux #wayland #meson-build

Вопрос:

Привет, я создавал wayland compositor на основе wlroots. Когда я пытался добавить «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.
  

Комментарии:

1. у вас есть папка протоколов?

2. да, у меня есть папка протоколов

Ответ №1:

Такая же проблема случилась со мной однажды, пожалуйста, убедитесь, что имя зависимости wayland-protocols в вашем meson.build совпадает с именем meson.build в папке protocols

Например: если вы определили свою зависимость следующим образом:

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')
  

Это работает для меня

Комментарии:

1. позвольте мне проверить это

2. Спасибо, это сработало довольно хорошо. я не использовал то же имя в своем файле meson.build в папке protocols