未定义的libusb_hotplug_register_callback参考

时间:2013-10-26 10:15:36

标签: c linux libusb usb-drive

我正在撰写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'的未定义引用

1 个答案:

答案 0 :(得分:0)

这看起来像是一个链接器问题。

这是因为头文件中存在“register_callback”函数,但它在引用的库中不存在...