5 个版本

使用旧 Rust 2015

0.1.4 2018年1月7日
0.1.3 2015年11月5日
0.1.2 2015年10月18日
0.1.1 2015年5月7日
0.1.0 2015年4月5日

693Unix APIs

Download history 66864/week @ 2024-02-28 70276/week @ 2024-03-06 59442/week @ 2024-03-13 71203/week @ 2024-03-20 62305/week @ 2024-03-27 66049/week @ 2024-04-03 53097/week @ 2024-04-10 66235/week @ 2024-04-17 64634/week @ 2024-04-24 63570/week @ 2024-05-01 56632/week @ 2024-05-08 64696/week @ 2024-05-15 65602/week @ 2024-05-22 74306/week @ 2024-05-29 70275/week @ 2024-06-05 65587/week @ 2024-06-12

288,596 每月下载量
用于 425 个crate(5 个直接使用)

MIT 许可证

15KB
162

Libudev Rust 绑定

libudev-sys crate 提供了对 C 库 libudev 的声明和链接。遵循 *--sys 包规范,libudev-sys crate 不定义比原生 libudev 库函数更高层次的抽象。

依赖项

为了使用 libudev-sys crate,您必须有一个 Linux 系统,其中已安装 libudev 库,并且可以通过 pkg-config 找到它。要在基于 Debian 的 Linux 发行版上安装 libudev,请执行以下命令

sudo apt-get install libudev-dev

libudev 是 Linux 特定的软件包。它不支持 Windows、OSX 或其他操作系统。

交叉编译

要链接到原生 libudev 库的交叉编译版本,需要设置几个环境变量来配置 pkg-config 以与交叉编译器的 sysroot 一起工作。《Autotools Mythbuster》对如何使用 pkg-config 支持交叉编译有一个很好的解释。

然而,Rust 的 pkg-config 构建助手 不支持调用以 $CHOST 为前缀的 pkg-config。它总是不带前缀调用 pkg-config。为了使用 pkg-config 构建助手交叉编译 libudev-sys,必须为 默认pkg-config 定义环境变量 PKG_CONFIG_DIRPKG_CONFIG_LIBDIRPKG_CONFIG_SYSROOT_DIR。还需要将 PKG_CONFIG_ALLOW_CROSS 设置为告诉 Rust 的 pkg-config 助手可以进行交叉编译。

为了使 Autotools Mythbuster 指南中的 pkg-config 包装器适用于 Rust,最终会得到一个类似以下脚本的脚本

#!/bin/sh

SYSROOT=/build/root

export PKG_CONFIG_DIR=
export PKG_CONFIG_LIBDIR=${SYSROOT}/usr/lib/pkgconfig:${SYSROOT}/usr/share/pkgconfig
export PKG_CONFIG_SYSROOT_DIR=${SYSROOT}
export PKG_CONFIG_ALLOW_CROSS=1

cargo build

使用方法

Cargo.toml 中将 libudev-sys 添加为依赖项

[dependencies]
libudev-sys = "0.1"

导入 libudev_sys 包并使用与原生 libudev 库中定义的函数相同的函数。有关更多信息,请参阅 libudev API 文档

extern crate libudev_sys as ffi;

libudev-sys 构建脚本会检测原生 libudev 函数的存在并将找到的函数导出。它从其构建脚本中导出这些信息,Cargo 会将其以环境变量的形式提供给依赖包的构建脚本。

  • DEP_LIBUDEV_HWDB={true,false}:原生 libudev 库有 udev_hwdb_* 函数。它们将由 libudev-sys 导出。

寻找帮助

由于 libudev-sys 仅仅是将原生 libudev 库的符号导出,因此最好的帮助来源是原生 libudev 可用的信息。

许可

版权 © 2015 David Cuddeback

MIT 许可证 下分发。

依赖项

~47KB