私は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 での hotplug サポートをテストしたかったのですが、hotplug 関数をコメントアウトするまでプログラムはコンパイルされません。次のエラーが表示されます。
エラー: `libusb_hotplug_register_callback' への未定義の参照