-- No package ‘libusb-1.0‘ found

参考文章:https://blog.youkuaiyun.com/weixin_40378209/article/details/126992745

在这里插入图片描述

sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo ldconfig

在这里插入图片描述
在这里插入图片描述

### 关于 `libusb_set_option` 的使用说明 #### 函数定义 `libusb_set_option` 是 LibUSB 库中的一个重要函数,用于配置上下文选项。其原型如下: ```c int libusb_set_option(libusb_context *ctx, enum libusb_option option, ...); ``` 该函数接受三个参数: 1. **`ctx`**: 指向 LibUSB 上下文的指针。如果为 NULL,则会自动创建一个新的上下文[^1]。 2. **`option`**: 枚举类型的选项标志,指定要设置的具体选项。 3. **可变参数列表**: 根据所选选项的不同,提供额外的参数。 --- #### 常见选项及其含义 以下是常见的 `enum libusb_option` 枚举值以及它们的作用: | 选项 | 描述 | |--------------------------|----------------------------------------------------------------------------------------| | `LIBUSB_OPTION_LOG_LEVEL` | 设置日志级别,控制调试信息的输出量。有效值范围为 0 到 3,分别表示 NONE、ERROR、WARNING 和 DEBUG[^3]。 | | `LIBUSB_OPTION_NO_DEVICE_DISCOVERY` | 禁用设备发现功能,在某些嵌入式环境中可能会提高性能。 | | `LIBUSB_OPTION_DETACH_KERNEL_DRIVER` | 自动分离内核驱动程序以便访问 USB 设备。 | --- #### 示例代码 以下是一个完整的示例,展示如何使用 `libusb_set_option` 配置日志级别并初始化 LibUSB 上下文: ```c #include <stdio.h> #include <libusb-1.0/libusb.h> int main() { // 初始化LibUSB上下文 libusb_context *ctx = NULL; int ret = libusb_init(&ctx); if (ret < 0) { fprintf(stderr, "Failed to initialize libusb\n"); return 1; } // 设置日志级别为DEBUG模式 ret = libusb_set_option(ctx, LIBUSB_OPTION_LOG_LEVEL, 3); // 日志级别设为DEBUG if (ret != 0) { fprintf(stderr, "Failed to set log level\n"); } else { printf("Log level successfully set to DEBUG.\n"); } // 执行其他操作... // 清理资源 libusb_exit(ctx); return 0; } ``` 上述代码展示了如何通过 `libusb_set_option` 将日志级别设置为 DEBUG(即最高级别的日志输出)。这有助于开发者在开发阶段捕获更多细节信息以排查问题。 --- #### 解决 CMake/Make 无法找到 LibUSB 的问题 当遇到类似 “Could NOT find libusb” 或者 “No package 'libusb-1.0' found” 的错误时,通常是因为缺少必要的库文件或头文件。可以尝试以下方法解决问题: 1. 安装 LibUSB 开发包: - Ubuntu/Linux: 运行命令 `sudo apt-get install libusb-1.0-0-dev`[^2]。 - macOS: 使用 Homebrew 安装,运行 `brew install libusb`。 2. 修改 CMakeLists.txt 文件,显式指定路径: 如果安装位置不在标准目录中,可以通过 `-DLIBUSB_INCLUDE_DIR` 和 `-DLIBUSB_LIBRARY` 显式传递路径。 ```cmake find_package(PkgConfig REQUIRED) pkg_check_modules(LIBUSB REQUIRED IMPORTED_TARGET libusb-1.0) add_executable(my_program main.c) target_link_libraries(my_program PRIVATE PkgConfig::LIBUSB) ``` 3. 检查环境变量: 确保 `PKG_CONFIG_PATH` 包含 LibUSB 的 `.pc` 文件所在路径。 --- #### 注意事项 - 默认情况下,LibUSB 不会产生任何日志输出。只有当调用了 `libusb_set_option` 并设置了合适的日志级别或者设置了环境变量 `LIBUSB_DEBUG` 后才会启用日志记录。 - 调试完成后建议恢复较低的日志级别(如 ERROR),以免影响生产环境下的性能。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秃秃秃秃哇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值