Я сгенерировал XML-файлы из документации (
Код: Выделить всё
waylandКод: Выделить всё
if (strcmp(p_interface, zxdg_decoration_manager_v1_interface.name) == 0) {
data->decor_manager = (struct zxdg_decoration_manager_v1 *)wl_registry_bind(p_registry, p_name, &zxdg_decoration_manager_v1_interface, 1);
}
Если это имеет какую-либо пользу, флаги компилятора/компоновщика, которые я использую, приведены ниже (и X11, и Wayland поддерживаются по умолчанию)
Код: Выделить всё
clang++ -std=c++17 -Wall -Werror -MD -gdwarf-5 -fPIC -fvisibility=hidden -fdeclspec -Wno-unused-const-variable --shared -lwayland-client -lX11
- Установите wayland-protocols из любого имеющегося у вас менеджера пакетов и сгенерируйте заголовки XML и исходные файлы в каталог (например, протоколы/.h и протоколы/.c). Для минимального использования сгенерируйте файлы из xdg-shell.xml и xdg-decoration.xml.
- Используйте приведенный ниже код в файле main.c, чтобы создать самый простой сценарий включения интерфейса.
Код: Выделить всё
// main.c
#include "protocols/xdg_decoration.h"
#include
const char *tmp = "Hello, World!";
int main(void) {
if (strcmp(tmp, zxdg_decoration_manager_v1_interface.name) == 0) {
return 0;
}
return 1; // actual return value doesn't matter
}
- Скомпилируйте приведенное выше с помощью команды clang++ -x c++ main.c протоколы/xdg_decoration.c протоколы/xdg_shell.c -o test -lwayland-client
- Обнаружьте ошибку.
Подробнее здесь: https://stackoverflow.com/questions/798 ... nce-to-zxd
Мобильная версия