2011-11-02 73 views
0

我想建立一个使用libusb的程序,我得到了很多的错误,如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. 

我已经做了命令和apt-get安装的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

什么Linux发行你使用(例如Ubuntu的11.10),你应该不在话下。 –

+0

对不起,我正在使用Debian 6.0.3。 – Sterling

回答

1

库libusb 0.1和libusb 1.0是非常不同的。你应该决定现在使用哪一个。我推荐libusb 1.0。上次检查时,libusb-devlibusb程序包安装libusb 0.1,而libusb-1.0-0-dev程序包至少应在Ubuntu中安装libusb 1.0。

安装完所需的库之后,您需要在C文件中包含头文件#include,并且还需要添加正确的链接器选项。

对于libusb的1.0,包含语句将

#include <libusb-1.0/libusb.h> 

和链接器选项是

-lusb-1.0 
+0

我试图apt-get安装1.0的,他们已经安装,我已经在那个头。我没有正确的链接器,但这并没有解决问题。 – Sterling

+0

我的libusb.h位于/usr/local/include/libusb-1.0...是否应该将makefile中的include目录更改为/ usr/local/include? – Sterling

+0

另外,dpkg告诉我libusb-1.0没有安装... – Sterling