Я пытаюсь скомпилировать libinput из источника с помощью следующего сценария:
$> git clone https://gitlab.freedesktop.org/libinput/libinput
$> cd libinput
$> meson --prefix=/usr builddir/
$> ninja -C builddir/
$> sudo ninja -C builddir/ install
В третьей строке я получаю следующую ошибку, включая mtdev. Мне установили mtdev-инструменты.
$ meson --prefix=/usr builddir/
The Meson build system
Version: 0.45.1
Source dir: /home/john/Downloads/libinput
Build dir: /home/john/Downloads/libinput/builddir
Build type: native build
Project name: libinput
Native C compiler: cc (gcc 7.4.0 "cc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0")
Build machine cpu family: x86_64
Build machine cpu: x86_64
Fetching value of define "static_assert": _Static_assert
Header <dirent.h> has symbol "versionsort": YES
Header <errno.h> has symbol "program_invocation_short_name": YES
Has header "xlocale.h": NO
Checking if "locale.h" links: YES
Header <sys/ptrace.h> has symbol "PTRACE_ATTACH": YES
Found pkg-config: /usr/bin/pkg-config (0.29.1)
Native dependency libudev found: YES 237
meson.build:117:0: ERROR: Native dependency 'mtdev' not found
Мезон использует pkg-конфигурацию, которая не сообщает о mtdev.
$ pkg-config --list-all | grep mtdev
(No results)
Я не уверен, является ли это проблемой, но я не знаю, как заставить pkg-конфигурацию "видеть" mtdev, и я понятия не имею, что еще сделать.
Система: Ubuntu 18.04 LTS. Я соглашаюсь с обновлением до 19,04, если это помогло бы.
Необходимо установить libmtdev-dev
пакет:
$> sudo apt-get install libmtdev-dev
Мезон и pkg-config
обычно ищут файлы для разработчика библиотек и систем (заголовочные файлы *.h
и библиотеки разработки lib*.so
и lib*.a
).
В Ubuntu (и Debian и дистрибутивы, полученные из этих двух), файлы для разработчика обычно хранятся в пакетах с -dev
суффикс. Таким образом, Вы обычно хотите искать те пакеты при закреплении зависимостей от сборки от Ubuntu.