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日 |
693 在 Unix APIs 中
288,596 每月下载量
用于 425 个crate(5 个直接使用)
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_DIR
、PKG_CONFIG_LIBDIR
和 PKG_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