我正在尝试构建一个使用libusb的程序,并且我遇到了很多错误,例如
i2cbrdg.c:84: error: implicit declaration of function ‘usb_init’
i2cbrdg.c:88: error: implicit declaration of function ‘usb_find_busses’
i2cbrdg.c:89: error: implicit declaration of function ‘usb_find_devices’
i2cbrdg.c:90: error: implicit declaration of function ‘usb_get_busses’
所以我正在尝试安装libusb,但是我遇到了麻烦。我已经安装了libusb-dev,看起来没问题。当我做dpkg -L libusb-dev时,我得到一个目录列表。但是,当我dpkg -L libusb时,我得到了
Package `libusb' is not installed.
Use dpkg --info (= dpkg-deb --info) to examine archive files,
and dpkg --contents (= dpkg-deb --contents) to list their contents.
我已经完成了sudo apt-get install libusb-1.0并且没问题。当我再次尝试时,我收到消息
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libusb-1.0-0' for regex 'libusb-1.0'
Note, selecting 'libusb-1.0-0-dev' for regex 'libusb-1.0'
libusb-1.0-0-dev is already the newest version.
libusb-1.0-0 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
我也尝试用yum安装它,它仍然说它没有安装。我已经下载了包的tar并运行了make,这似乎也没关系(没有明确的错误消息)。我真的不知道下一步该尝试什么。 dpkg消息只是告诉我它没有安装。任何人都可以给我一个进入的方向吗?任何帮助表示赞赏。
答案 0 :(得分:1)
库libusb 0.1和libusb 1.0非常不同。您现在应该决定要使用哪一个。我推荐libusb 1.0。我最后一次检查时,libusb-dev
和libusb
包安装了libusb 0.1,而libusb-1.0-0-dev
包应该安装libusb 1.0,至少在Ubuntu中。
安装所需的库后,您需要{C}文件中的#include
头文件,并添加正确的链接器选项。
对于libusb 1.0,include语句为
#include <libusb-1.0/libusb.h>
,链接器选项为
-lusb-1.0