Где статическая версия libudev?

Поскольку я хочу, чтобы мои бинарные файлы запускались в старых дистрибутивах , я решил создать статически скомпонованный бинарник.

Мое приложение зависит от libhid-hidraw и, следовательно, от libudev .

У меня установлены пакеты разработки:

      sudo apt install libudev-dev libhidapi-dev

Когда я пытаюсь связать, я получаю эту ошибку:

      cc -g -Wall -Wextra -static daemon/turboledzd.c -o daemon/turboledzd -lhidapi-hidraw -ludev
/usr/bin/ld: cannot find -ludev
collect2: error: ld returned 1 exit status

В моей системе есть libhidapi-hidraw.aприсутствует файл:

      $ dpkg -S hidraw.a
libhidapi-dev:amd64: /usr/lib/x86_64-linux-gnu/libhidapi-hidraw.a

Но нет такой статической библиотеки для udev:

      $ dpkg -S libudev.
libudev1:i386: /usr/lib/i386-linux-gnu/libudev.so.1
libudev-dev:amd64: /usr/lib/x86_64-linux-gnu/pkgconfig/libudev.pc
python3-pyudev: /usr/lib/python3/dist-packages/pyudev/_ctypeslib/libudev.py
libudev1:amd64: /usr/lib/x86_64-linux-gnu/libudev.so.1.7.1
libudev-dev:amd64: /usr/lib/x86_64-linux-gnu/libudev.so
libudev1:amd64: /usr/lib/x86_64-linux-gnu/libudev.so.1
libudev-dev:amd64: /usr/include/libudev.h
libudev1:i386: /usr/lib/i386-linux-gnu/libudev.so.1.7.1
libudev-dev:amd64: /usr/share/man/man3/libudev.3.gz

Какой пакет Ubuntu будет содержать libudev.aбиблиотека?

1 ответ

Ну, он недоступен в апстриме и в Debian.

Вот соответствующий отчет об ошибке № 915566 в Debian , и в конечном итоге они не реализуют решение из-за больших результирующих статических файлов и отсутствия спроса со стороны пользователей.

Это часть systemd, вы сможете скомпилировать его, используя эти флаги: -Dstatic-libsystemd=true -Dstatic-libudev=true. См. указанный отчет об ошибке.

Другие вопросы по тегам