2014-10-15 6 views
0

현재 Mac OS X에서 lib usb-1 (1.0.19) 및 usb-compat (0.1.5)를 사용하여 libmtp 버전 1.1.8을 빌드하려고합니다. 동적 lib를 생성합니다.libmtp가 MacOSX에서 HAVE_USB1 플래그로 빌드하지 않습니다.

libmtp가 실제로 USB1 라이브러리를 지원하는지 잘 모르겠습니다. 주로 libusb-glue.c를 빌드하는 데 문제가 있기 때문입니다. config.h를, 나는이 : 대신 USB0

의 USB1을 이동할 때

result = USB_BULK_READ(ptp_usb->handle, 
       ptp_usb->inep, 
       (char*) bytes, 
       toread, 
       ptp_usb->timeout); 

이 매개 변수를 추가 할 플래그가 없습니다 :

#undef HAVE_LIBUSB0 
#define HAVE_LIBUSB1 /**/ 

사지 - glue.c 일, 예를 들면 내가 플래그 USB1 활성화하고 USB0 금지 가지고 정의로

는 사지 - glue.h이

#ifdef HAVE_LIBUSB1 
#define USB_BULK_READ libusb_bulk_transfer 
#define USB_BULK_WRITE libusb_bulk_transfer 
#endif 
#ifdef HAVE_LIBUSB0 
#define USB_BULK_READ usb_bulk_read 
#define USB_BULK_WRITE usb_bulk_write 
#endif 
#ifdef HAVE_LIBOPENUSB 
#define USB_BULK_READ openusb_bulk_xfer 
#define USB_BULK_WRITE openusb_bulk_xfer 
#endif 

과 같이 정의된다 6 개 인수

int API_EXPORTED libusb_bulk_transfer(struct libusb_device_handle *dev_handle, 
    unsigned char endpoint, unsigned char *data, int length, int *transferred, 
    unsigned int timeout) 
{ 
    return do_sync_bulk_transfer(dev_handle, endpoint, data, length, 
     transferred, timeout, LIBUSB_TRANSFER_TYPE_BULK); 
} 

을 취하는 libusb를-1 파일의 sync.c 파일에 어떤 이상한 것은 USB_BULK_READ/WRITE 추가 할 또한 USB0 또는 USB1 지원 플래그되지 않은이/대한 누락 된 매개 변수를 제거하다 USB1 지원

어떤 생각이나 lib usb1 또는 lib usb0을 더 잘 사용해야하는지 알고 있습니까? 아마도 lib 디렉토리 - USB0 + 구축하는 것이 좋습니다 당신의 OSX 개발 상자에 libmtp 얻을 사제를 사용하는 대신

감사

에게

답변

0

나의 제안을 USB1를 사용한다 libusb를을-compat 시스템. homebrew는 libusb (libusb-compat)를 얻을 것이고 libmtp의 동적 및 정적 라이브러리를 남겨줄 것입니다.

libmtp 개발을하지 않는 한이 방법이 libmtp를 사용하는 가장 빠른 방법입니다.