qt在linux下使用libusb
时间: 2023-12-31 09:06:05 浏览: 203
Debian 10 下 Qt 5.12.3 使用libusb 1.0.9源码工程示例
5星 · 资源好评率100%
要在Linux下使用libusb库,您需要在Qt项目中包含libusb的头文件,并链接到libusb库。
步骤如下:
1. 安装libusb库。在Ubuntu中,您可以使用以下命令进行安装:
```
sudo apt-get install libusb-1.0-0-dev
```
2. 在Qt项目中包含libusb头文件。在.pro文件中添加以下行:
```
INCLUDEPATH += /usr/include/libusb-1.0
```
3. 链接到libusb库。在.pro文件中添加以下行:
```
LIBS += -lusb-1.0
```
4. 使用libusb API。您可以在Qt项目中使用C++代码来调用libusb库的函数。例如,以下代码打印连接的USB设备的列表:
```
#include <libusb-1.0/libusb.h>
#include <iostream>
int main()
{
libusb_context *ctx = nullptr;
if (libusb_init(&ctx) != 0) {
std::cerr << "Failed to initialize libusb" << std::endl;
return 1;
}
libusb_device **devs = nullptr;
int cnt = libusb_get_device_list(ctx, &devs);
if (cnt < 0) {
std::cerr << "Failed to get device list" << std::endl;
libusb_exit(ctx);
return 1;
}
for (int i = 0; i < cnt; i++) {
libusb_device_descriptor desc;
if (libusb_get_device_descriptor(devs[i], &desc) != 0) {
std::cerr << "Failed to get device descriptor" << std::endl;
continue;
}
std::cout << "Vendor ID: 0x" << std::hex << desc.idVendor
<< ", Product ID: 0x" << std::hex << desc.idProduct << std::endl;
}
libusb_free_device_list(devs, 1);
libusb_exit(ctx);
return 0;
}
```
注意:您需要在程序中调用libusb_init()和libusb_exit()函数来初始化和清理libusb库的上下文。
阅读全文