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硬件支持 中排名

Download history 25094/week @ 2024-05-01 24432/week @ 2024-05-08 24447/week @ 2024-05-15 23645/week @ 2024-05-22 23673/week @ 2024-05-29 24451/week @ 2024-06-05 25127/week @ 2024-06-12 24885/week @ 2024-06-19 25417/week @ 2024-06-26 23399/week @ 2024-07-03 23935/week @ 2024-07-10 25253/week @ 2024-07-17 27298/week @ 2024-07-24 26086/week @ 2024-07-31 27938/week @ 2024-08-07 20046/week @ 2024-08-14

106,054 每月下载量
164 包(18 个直接)中使用

MIT 许可证

1MB
20K SLoC

C 17K SLoC // 0.3% comments C++ 1.5K SLoC // 0.1% comments Rust 1K SLoC // 0.0% comments Visual Studio Project 564 SLoC Visual Studio Solution 542 SLoC Automake 76 SLoC // 0.0% comments PowerShell 15 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_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 中将 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

依赖项