이 문제에 관해 많은 질문이 있지만 특히 우분투의 libusb 라이브러리 구현에 문제가 있음을 알고 있습니다.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)
그리고 두 번을 :
if((device->descriptor.idVendor == 0x16c0) && (device->descriptor.idProduct == 0x05df))
내가 말했듯이,이 이상해 왜냐하면 저는 (대부분)이 작업을하지 않기 때문에, 이것은 lib 웹 사이트의 설정 예제에서 취한 것입니다.
어떤 제안이 좋을 것입니다. 감사!
'device-> next'라는 표현은 실제로 아무 것도하지 않습니다. 나는 당신이'device = device-> next'를 의미한다고 생각하니? –
예, 죄송합니다. miscopy. 모든 오류가 계속 적용됩니다. – eatonphil
그리고 구조체가 정의 된 헤더 파일을 포함합니까? –