我正在编写一个libusb程序。它工作正常,我可以进行批量传输、控制传输等。现在,我想添加热插拔支持。根据 libusb 1.0 文档,热插拔支持在 Windows 上不可用。因此,以下代码段按预期返回 false。
if(libusb_has_capability (LIBUSB_CAP_HAS_HOTPLUG))
{
hasHotPlugSupport = true;
status = libusb_hotplug_register_callback (context, LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED, LIBUSB_HOTPLUG_ENUMERATE , VENDOR_ID,
PRODUCT_ID, CLASS_ID, hotplugAttachCallback, this, &hotplugHandle[0]);
if (LIBUSB_SUCCESS != status)
{
hasHotPlugSupport = false;
}
status = libusb_hotplug_register_callback (context, LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT, LIBUSB_HOTPLUG_ENUMERATE , VENDOR_ID,
PRODUCT_ID, CLASS_ID, hotplugDetachCallback, this, &hotplugHandle[1]);
if (LIBUSB_SUCCESS != status)
{
hasHotPlugSupport = false;
}
future = QtConcurrent::run (this,&LibUsbDevice::eventThread);
}
所以,我想在 Linux 上测试热插拔支持,但是在我注释掉热插拔函数之前,程序无法编译。我收到以下错误:
错误:未定义对“libusb_hotplug_register_callback”的引用