22个版本
0.7.0 | 2024年4月27日 |
---|---|
0.6.4 | 2022年8月4日 |
0.6.2 | 2022年4月26日 |
0.6.0 | 2021年9月10日 |
0.3.0 | 2019年7月28日 |
167 在 硬件支持 中排名
106,054 每月下载量
在 164 个 包(18 个直接)中使用
1MB
20K SLoC
libusb Rust绑定
libusb1-sys
包提供了对 libusb
C库的声明和链接。遵循 *-sys
包约定,libusb1-sys
包不定义对原生 libusb
库函数的更高级抽象。
依赖项
为了使用 libusb1-sys
包,您必须安装 libusb
库,并且它可以通过 pkg-config
找到。
所有由 libusb
支持的系统也都由 libusb1-sys
包支持。它已在 Linux、OS X 和 Windows 上进行了测试。
交叉编译
为了链接到原生 libusb
库的交叉编译版本,必须设置几个环境变量以配置 pkg-config
以与交叉编译器的 sysroot 一起工作。 Autotools Mythbuster 对 使用 pkg-config
支持交叉编译 有很好的解释。
但是,Rust 的 pkg-config
构建助手 不支持调用以 $CHOST
前缀的 pkg-config
。它总是会不带前缀调用 pkg-config
。为了使用 pkg-config
构建助手交叉编译 libusb1-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
中将 libusb1-sys
添加为依赖项。
[dependencies]
libusb1-sys = "0.6"
导入 libusb1_sys
包,并像在本地 libusb
库中定义的那样使用函数。有关更多用法信息,请参阅 libusb
1.0 API 文档。
extern crate libusb1_sys as ffi;
fn main() {
let version = unsafe { ffi::libusb_get_version() };
println!("libusb v{}.{}.{}.{}", version.major, version.minor, version.micro, version.nano);
}
本地依赖项
libusb1-sys
导出 元数据,以便依赖项包可以找到正确的 libusb.h
头文件并编译依赖 libusb
的本地代码。如果包直接依赖于 libusb1-sys
,则其构建脚本可以访问以下环境变量:
DEP_USB_1.0_INCLUDE
包含正确的libusb.h
的包含路径。DEP_USB_1.0_VENDORED
如果libusb1-sys
编译并链接到其 vendored 版本的libusb
,则设置为1
。DEP_USB_1.0_STATIC
如果使用了静态链接而不是动态链接,则设置为1
。
寻找帮助
由于 libusb1-sys
仅仅是本地 libusb
库的包装,因此最佳的帮助来源是已经为 libusb
提供的信息。
许可证
在 MIT 许可证 下分发。
许可证说明。
如果您将本地 libusb
库静态链接,则必须遵循 GNU LGPL。