Macos libusb1.0.20无法在osx yosemite上编译

Macos libusb1.0.20无法在osx yosemite上编译,macos,makefile,autotools,libusb-1.0,Macos,Makefile,Autotools,Libusb 1.0,我正试图在我的mac电脑上为我的一个项目安装新的libusb1.0.20版本;我正在研究。我主要对libusb静态库.a和.la感兴趣 我从网上获得了源代码,进入目录并键入./configure,然后包正确配置。现在,在我进入make之后,它会因为错误而变得疯狂。我似乎想不出来。我想这可能与我的机器的设置有关,但我似乎无法理解。谁能帮帮我吗。这就是我得到的: make /Applications/Xcode.app/Contents/Developer/usr/bin/make all-re

我正试图在我的mac电脑上为我的一个项目安装新的libusb1.0.20版本;我正在研究。我主要对libusb静态库.a和.la感兴趣

我从网上获得了源代码,进入目录并键入./configure,然后包正确配置。现在,在我进入make之后,它会因为错误而变得疯狂。我似乎想不出来。我想这可能与我的机器的设置有关,但我似乎无法理解。谁能帮帮我吗。这就是我得到的:

 make
/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-recursive
Making all in libusb
  CC       libusb_1_0_la-core.lo
  CC       libusb_1_0_la-descriptor.lo
  CC       libusb_1_0_la-io.lo
  CC       libusb_1_0_la-strerror.lo
  CC       libusb_1_0_la-sync.lo
  CC       libusb_1_0_la-hotplug.lo
  CC       os/libusb_1_0_la-threads_posix.lo
  CC       os/libusb_1_0_la-darwin_usb.lo
In file included from /usr/include/dispatch/dispatch.h:51:0,
                 from /System/Library/Frameworks/CoreFoundation.framework/Headers/CFStream.h:15,
                 from /System/Library/Frameworks/CoreFoundation.framework/Headers/CFPropertyList.h:13,
                 from /System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:55,
                 from /System/Library/Frameworks/IOKit.framework/Headers/IOCFBundle.h:26,
                 from os/darwin_usb.h:26,
                 from os/darwin_usb.c:43:
/usr/include/dispatch/object.h:143:15: error: expected identifier or '(' before '^' token
 typedef void (^dispatch_block_t)(void);
               ^
/usr/include/dispatch/object.h:362:3: error: unknown type name 'dispatch_block_t'
   dispatch_block_t notification_block);
   ^
In file included from /System/Library/Frameworks/IOKit.framework/Headers/usb/IOUSBLib.h:27:0,
                 from os/darwin_usb.h:27,
                 from os/darwin_usb.c:43:
/System/Library/Frameworks/IOKit.framework/Headers/usb/USB.h:601:9: error: too many #pragma options align=reset
 #pragma options align=reset
         ^
In file included from /System/Library/Frameworks/IOKit.framework/Headers/usb/IOUSBLib.h:27:0,
                 from os/darwin_usb.h:27,
                 from os/darwin_usb.c:43:
/System/Library/Frameworks/IOKit.framework/Headers/usb/USB.h:771:9: error: too many #pragma options align=reset
 #pragma options align=reset
         ^
/System/Library/Frameworks/IOKit.framework/Headers/usb/USB.h:823:9: error: too many #pragma options align=reset
 #pragma options align=reset
         ^
/System/Library/Frameworks/IOKit.framework/Headers/usb/USB.h:841:9: error: too many #pragma options align=reset
 #pragma options align=reset
         ^
/System/Library/Frameworks/IOKit.framework/Headers/usb/USB.h:861:9: error: too many #pragma options align=reset
 #pragma options align=reset
         ^
os/darwin_usb.c: In function 'darwin_get_device_descriptor':
os/darwin_usb.c:58:76: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 #define DARWIN_CACHED_DEVICE(a) ((struct darwin_cached_device *) (((struct darwin_device_priv *)((a)->os_priv))->dev))
                                                                            ^
os/darwin_usb.c:484:39: note: in expansion of macro 'DARWIN_CACHED_DEVICE'
   struct darwin_cached_device *priv = DARWIN_CACHED_DEVICE(dev);
                                       ^
os/darwin_usb.c: In function 'get_configuration_index':
os/darwin_usb.c:58:76: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 #define DARWIN_CACHED_DEVICE(a) ((struct darwin_cached_device *) (((struct darwin_device_priv *)((a)->os_priv))->dev))
                                                                            ^
os/darwin_usb.c:495:39: note: in expansion of macro 'DARWIN_CACHED_DEVICE'
   struct darwin_cached_device *priv = DARWIN_CACHED_DEVICE(dev);
                                       ^
os/darwin_usb.c: In function 'darwin_get_active_config_descriptor':
os/darwin_usb.c:58:76: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 #define DARWIN_CACHED_DEVICE(a) ((struct darwin_cached_device *) (((struct darwin_device_priv *)((a)->os_priv))->dev))
                                                                            ^
os/darwin_usb.c:517:39: note: in expansion of macro 'DARWIN_CACHED_DEVICE'
   struct darwin_cached_device *priv = DARWIN_CACHED_DEVICE(dev);
                                       ^
os/darwin_usb.c: In function 'darwin_get_config_descriptor':
os/darwin_usb.c:58:76: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 #define DARWIN_CACHED_DEVICE(a) ((struct darwin_cached_device *) (((struct darwin_device_priv *)((a)->os_priv))->dev))
                                                                            ^
os/darwin_usb.c:531:39: note: in expansion of macro 'DARWIN_CACHED_DEVICE'
   struct darwin_cached_device *priv = DARWIN_CACHED_DEVICE(dev);
                                       ^
os/darwin_usb.c: In function 'darwin_open':
os/darwin_usb.c:58:76: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 #define DARWIN_CACHED_DEVICE(a) ((struct darwin_cached_device *) (((struct darwin_device_priv *)((a)->os_priv))->dev))
                                                                            ^
os/darwin_usb.c:946:40: note: in expansion of macro 'DARWIN_CACHED_DEVICE'
   struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(dev_handle->dev);
                                        ^
os/darwin_usb.c: In function 'darwin_close':
os/darwin_usb.c:58:76: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 #define DARWIN_CACHED_DEVICE(a) ((struct darwin_cached_device *) (((struct darwin_device_priv *)((a)->os_priv))->dev))
                                                                            ^
os/darwin_usb.c:995:40: note: in expansion of macro 'DARWIN_CACHED_DEVICE'
   struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(dev_handle->dev);
                                        ^
os/darwin_usb.c: In function 'darwin_get_configuration':
os/darwin_usb.c:58:76: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 #define DARWIN_CACHED_DEVICE(a) ((struct darwin_cached_device *) (((struct darwin_device_priv *)((a)->os_priv))->dev))
                                                                            ^
os/darwin_usb.c:1034:40: note: in expansion of macro 'DARWIN_CACHED_DEVICE'
   struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(dev_handle->dev);
                                        ^
os/darwin_usb.c: In function 'darwin_set_configuration':
os/darwin_usb.c:58:76: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 #define DARWIN_CACHED_DEVICE(a) ((struct darwin_cached_device *) (((struct darwin_device_priv *)((a)->os_priv))->dev))
                                                                            ^
os/darwin_usb.c:1042:40: note: in expansion of macro 'DARWIN_CACHED_DEVICE'
   struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(dev_handle->dev);
                                        ^
os/darwin_usb.c: In function 'darwin_claim_interface':
os/darwin_usb.c:58:76: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 #define DARWIN_CACHED_DEVICE(a) ((struct darwin_cached_device *) (((struct darwin_device_priv *)((a)->os_priv))->dev))
                                                                            ^
os/darwin_usb.c:1147:40: note: in expansion of macro 'DARWIN_CACHED_DEVICE'
   struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(dev_handle->dev);
                                        ^
os/darwin_usb.c: In function 'darwin_reset_device':
os/darwin_usb.c:58:76: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 #define DARWIN_CACHED_DEVICE(a) ((struct darwin_cached_device *) (((struct darwin_device_priv *)((a)->os_priv))->dev))
                                                                            ^
os/darwin_usb.c:1331:40: note: in expansion of macro 'DARWIN_CACHED_DEVICE'
   struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(dev_handle->dev);
                                        ^
os/darwin_usb.c: In function 'darwin_kernel_driver_active':
os/darwin_usb.c:58:76: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 #define DARWIN_CACHED_DEVICE(a) ((struct darwin_cached_device *) (((struct darwin_device_priv *)((a)->os_priv))->dev))
                                                                            ^
os/darwin_usb.c:1383:40: note: in expansion of macro 'DARWIN_CACHED_DEVICE'
   struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(dev_handle->dev);
                                        ^
os/darwin_usb.c: In function 'submit_control_transfer':
os/darwin_usb.c:58:76: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 #define DARWIN_CACHED_DEVICE(a) ((struct darwin_cached_device *) (((struct darwin_device_priv *)((a)->os_priv))->dev))
                                                                            ^
os/darwin_usb.c:1615:40: note: in expansion of macro 'DARWIN_CACHED_DEVICE'
   struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(transfer->dev_handle->dev);
                                        ^
os/darwin_usb.c: In function 'cancel_control_transfer':
os/darwin_usb.c:58:76: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 #define DARWIN_CACHED_DEVICE(a) ((struct darwin_cached_device *) (((struct darwin_device_priv *)((a)->os_priv))->dev))
                                                                            ^
os/darwin_usb.c:1685:40: note: in expansion of macro 'DARWIN_CACHED_DEVICE'
   struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(transfer->dev_handle->dev);
                                        ^
os/darwin_usb.c: In function 'darwin_abort_transfers':
os/darwin_usb.c:58:76: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 #define DARWIN_CACHED_DEVICE(a) ((struct darwin_cached_device *) (((struct darwin_device_priv *)((a)->os_priv))->dev))
                                                                            ^
os/darwin_usb.c:1700:40: note: in expansion of macro 'DARWIN_CACHED_DEVICE'
   struct darwin_cached_device *dpriv = DARWIN_CACHED_DEVICE(transfer->dev_handle->dev);
                                        ^
make[3]: *** [os/libusb_1_0_la-darwin_usb.lo] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

解决它。显然,将CC从gcc切换到clang解决了这个问题。

解决了这个问题。显然,将CC从gcc切换到clang解决了问题。

将CC切换到clang而不是gcc将CC切换到clang而不是gcc