Libudev 作为静态库?

问题描述 投票:0回答:2

我正在尝试构建一个依赖于

libudev
的静态二进制文件。

不幸的是

nix-env -iA nixpkgs.pkgsStatic.libudev
失败了:
error: p11-kit cannot be used as a static library

有更好的方法吗?

nix nixpkgs
2个回答
0
投票

在较新的 nixpkgs 版本上,您不会收到上述错误,但会收到几个编译错误。如果您熟悉静态编译,请随时提交 PR 来修复这些问题。


0
投票

基本上 libudev 不能是静态库,因为它是 systemd 的一部分,而 systemd 似乎不支持静态链接:在这种情况下,您的应用程序可能无法在其他系统上运行。但如果目标是消除对 libudev 的直接依赖,则可以使用 dlopen/dlsym 加载 libudev.so 函数,并且应用程序可能根本不需要 libudev 即可运行。 看看我的动态链接 libudev 的小包装器,也许会有帮助:https://github.com/alexbsys/udev_dynamic_wrapper

© www.soinside.com 2019 - 2024. All rights reserved.