0

この問題について多くの質問があることは承知していますが、具体的には、Ubuntu での libusb ライブラリの実装に問題があります。これが私のコードです:

struct usb_bus *busses;
struct usb_bus *bus;
struct usb_device *digiSpark = NULL;
struct usb_device *device;


if(debug) printf("Detecting USB devices...\n");
// Initialize the USB library
usb_init();

// Enumerate the USB device tree
usb_find_busses();
usb_find_devices();

// Iterate through attached busses and devices
busses = usb_get_busses();
for (bus = busses; bus; bus = bus->next)
{
    for (device = bus->devices; device; device = device->next)
    {
        // Check to see if each USB device matches the DigiSpark Vendor and Product IDs
        if((device->descriptor.idVendor == 0x16c0) && (device->descriptor.idProduct == 0x05df))
        {
            if(debug) printf("Detected DigiSpark... \n");
            digiSpark = device;
        }
    }
}

これは、libusb の例からほぼそのまま引用されています。

http://libusb.sourceforge.net/doc/examples-code.html

しかし、それは大量の「不完全な型へのポインターの逆参照」エラーを生成しています。

具体的には、次の行で不完全型エラーへのこの逆参照ポインターを取得しています。

busses = usb_get_busses();

for (bus = busses; bus; bus->next)

for (device = bus->devices; device; device->next)

そして、次の行で 2 回:

if((device->descriptor.idVendor == 0x16c0) && (device->descriptor.idProduct == 0x05df))

私が言ったように、これは奇妙です。なぜなら、私は (ほとんどの場合) これを作り上げていないからです。これは、lib Web サイトの確立された例から取られています。

どんな提案も素晴らしいでしょう。ありがとう!

4

1 に答える 1