libudev 的静态版本在哪里?

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 上都不可用。

以下是相关内容Debian 中的错误报告 #915566但由于生成的静态文件太大且没有用户需求,他们最终没有实施解决方案。

它是 的一部分systemd,您将能够使用这些标志来编译它: -Dstatic-libsystemd=true -Dstatic-libudev=true。请参阅参考的错误报告。

相关内容