#bindings #usb #libusb #hardware

sys libusb-sys-wishbone-tool

FFI绑定库的Vendored副本

1 个不稳定版本

使用旧的Rust 2015

0.2.6 2020年6月30日

#1890硬件支持


用于 2 个包

MIT 许可证

1.5MB
40K SLoC

C 26K SLoC // 0.2% comments Visual Studio Project 12K SLoC C++ 1K SLoC // 0.0% comments Visual Studio Solution 872 SLoC Rust 511 SLoC // 0.0% comments Batch 213 SLoC // 0.0% comments Automake 128 SLoC Xcode Config 47 SLoC // 0.7% comments Shell 9 SLoC // 0.2% comments

包含 (神秘的autoconf代码,11KB) libusb/configure.ac

Libusb Rust绑定

libusb-sys 包提供对 libusb C库的声明和链接。遵循 *--sys 包约定,libusb-sys 包不定义对原生 libusb 库函数的高级抽象。

依赖关系

为了使用 libusb-sys 包,您必须在 libusb 库已安装的位置安装它,以便通过 pkg-config 找到它。

支持 libusb 的所有系统也支持 libusb-sys 包。它已在 Linux、OS X 和 Windows 上进行过测试。

交叉编译

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

但是,Rust 的 pkg-config 构建辅助工具 不支持调用前缀为 $CHOSTpkg-config。它将始终调用不带前缀的 pkg-config。要使用 pkg-config 构建辅助工具交叉编译 libusb-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 中将 libusb-sys 添加为依赖项

[dependencies]
libusb-sys = "0.2"

导入libusb_sys crate,并像在本地libusb库中定义的那样使用这些函数。有关更多信息,请参阅libusb 1.0 API文档。

extern crate libusb_sys as ffi;

fn main() {
  let version = unsafe { ffi::libusb_get_version() };

  println!("libusb v{}.{}.{}.{}", version.major, version.minor, version.micro, version.nano);
}

寻找帮助

由于libusb-sys只是本地libusb库的包装,因此最好的帮助来源是libusb现有的信息。

许可

版权所有 © 2015 David Cuddeback

MIT许可证下分发。

依赖关系