Windows 11 搭建 Rust USB 开发环境之 MSVC 版

分类:Rust     发布时间:2023-12-22     最后更新:2023-12-22     浏览数:559
继上一篇文章《Windows 11 搭建 Rust USB 开发环境之 GNU 版》,这篇主要总结一下安装 msvc 工具链的要点。

继上一篇文章《Windows 11 搭建 Rust USB 开发环境之 GNU 版》,这篇主要总结一下安装 msvc 工具链的要点。

前置

  1. Windows 11 系统
  2. Microsoft C++ 生成工具,我装的是 2022 版,还有一些依赖,如 Windows 11 SDK,参考 Windows上Rust所依赖的msvc到底怎么装?
  3. rust 及其相关工具,如 cargorustuprustc。一般安装好 rust,这些工具都会包含在内。
  4. 下载 libusb 编译好的库,我下载的是 libusb-1.0.26

实战

项目根目录假定是 D:\projects\rust\libusb-demo

创建一个 rust 项目

打开一个命令提示符后,执行以下命令

cargo new libusb-demo
cd libusb-demo
cargo add libusb
code .

写调用 libusb 的测试代码

在 Visual Studio Code 编辑器中编辑 src/main.rs

extern crate libusb;

fn main() {
    let context = libusb::Context::new().unwrap();
    for device in context.devices().unwrap().iter() {
        let device_desc = device.device_descriptor().unwrap();

        println!("Bus {:03} Device {:03} ID {:04x}:{:04x}",
            device.bus_number(),
            device.address(),
            device_desc.vendor_id(),
            device_desc.product_id());
    }
}

配置

  1. 解压 libusb-1.0.26-binaries.7z 得到 libusb-1.0.26-binaries
  2. libusb-1.0.26-binaries 下的 VS2015-x64 复制到 D:\projects\rust\libusb-demo 下,并改名为 libusb-x64
  3. libusb-demo 下新建 .cargo/config.toml
    // .cargo/config.toml
    [target.x86_64-pc-windows-msvc.'usb-1.0']
    # rustc-link-search = ['D:\projects\rust\libusb-demo\libusb-x64\dll'] # 这种是动态链接方式
    rustc-link-search = ['D:\projects\rust\libusb-demo\libusb-x64\lib'] # 这种是静态链接方式
    rustc-link-lib = ['libusb-1.0']

编译正式版

cargo build --release

验证

静态链接版

复制 target\release\libusb-demo.exe 到虚拟机里或另一台装有 Windows 的系统运行。 打开 命令提示符,进入 C:\Users\Payton\Desktop

C:\Users\Payton\Desktop>libusb-demo.exe
Bus 003 Device 001 ID 0e0f:0003
Bus 001 Device 002 ID 0e0f:0002
Bus 003 Device 000 ID 15ad:0779
Bus 002 Device 000 ID 15ad:0770
Bus 003 Device 002 ID 0e0f:0002
Bus 003 Device 003 ID 0e0f:0002
Bus 001 Device 000 ID 15ad:0774

动态链接版

复制 target\release\libusb-demo.exelibusb-x64\dll\libusb-1.0.dll 到虚拟机里或另一台装有 Windows 的系统运行。 打开 命令提示符,进入 C:\Users\Payton\Desktop

  • 如果没有复制 libusb-1.0.dll
C:\Users\Payton\Desktop>libusb-demo.exe

提示

  • 复制 libusb-1.0.dll
    C:\Users\Payton\Desktop>libusb-demo.exe
    Bus 003 Device 001 ID 0e0f:0003
    Bus 001 Device 002 ID 0e0f:0002
    Bus 003 Device 000 ID 15ad:0779
    Bus 002 Device 000 ID 15ad:0770
    Bus 003 Device 002 ID 0e0f:0002
    Bus 003 Device 003 ID 0e0f:0002
    Bus 001 Device 000 ID 15ad:0774

参考

Windows上Rust所依赖的msvc到底怎么装?

Linking on Windows #20

  1. 项目目录
上一篇: Windows 11 搭建 Rust USB 开发环境之 GNU 版 下一篇: jsbarcode 添加 Code93 条码