我正在撰写libusb计划。它工作正常,我可以进行批量传输,控制传输等。现在,我想添加hotplug支持。根据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上测试hotplug支持,但是在我注释掉hotplug函数之前程序不会编译。我收到以下错误:
错误:对`libusb_hotplug_register_callback'的未定义引用
答案 0 :(得分:0)
这看起来像是一个链接器问题。
这是因为头文件中存在“register_callback”函数,但它在引用的库中不存在...