在Ubuntu上针对libusb-dev进行编译

我正在尝试编译libusb包提供的示例libusb.c(如果你是源代码。)

至少可以这么说。

#include  #include  #include  

这导致它失败,没有libusb/libusb.h它是usb.h ,所以我改变了。 它以新的和创新的方式失败了。

我已经完全复制了文件,并将其命名为example.c

我正在使用这些命令和变体:

 gcc -o example example.c -lusb -L /usr/lib/libusb.a gcc -o example example.c -lusb -L /usr/lib/libusb.so 

编译时遇到的错误是:

 example.c:25: error: expected ')' before '*' token example.c: In function 'main': example.c:46: error: 'libusb_device' undeclared (first use in this function) example.c:46: error: (Each undeclared identifier is reported only once example.c:46: error: for each function it appears in.) example.c:46: error: 'devs' undeclared (first use in this function) Line 25: static void print_devs(libusb_device **devs) Line 46: libusb_device **devs; 

起初我遵循了一个教程,并且无法以相同的方式编译,所以我决定尝试提供的示例,但失败了。

谁能帮我吗? 解释我做错了什么,因为我迷失了这个。

这就是我在Debian上必须做的。 在Ubuntu中至少应该类似。

安装libusb-1.0-0-dev

代替:

 #include  

做:

 #include  

编译:

 gcc example.c `pkg-config --libs --cflags libusb-1.0` 

只是解释了为什么用usb.h替换libusb/libusb.husb.h失败了: usb.hlinux-headers ,而不是libusb-dev 。 你需要#include