...requires the usb.h C header which is either not present in the latest version of libusb or has a different name.
Actually, it looks as if you have multiple versions of usb.h
(hence, multiple installs of libusb
) that are being detected. Look carefully through the output you posted and you see lots of things like this:
USB.xs:16: error: conflicting types for ‘libusb_init’
/opt/local/include/libusb-1.0/usb.h:768: error: previous declaration o
+f ‘libusb_init’ was here
Now you just need to find the competing version, but I don't see anything in your posted output to help solve that problem.
Update: I looked right past the point Corion mentions, so obviously I don't have the full story. You may need to tweak some settings in Makefile.PL to properly detect the one version of libusb that you want to use.
Update 2: It looks like you are using MacPorts to supply libusb. Since MacPorts has multiple versions available, I'm betting that you have both the "stable" and the "legacy" versions installed, which is why usb.h is found more than once. I don't use MacPorts, so I can't offer any advice about what's the best way out of this, but I do think you need to tell Makefile.PL where to find what it's looking for.