Libusb以及如何在Ubuntu中使用它的包

时间:2013-02-23 14:00:40

标签: c++ c ubuntu installation libusb

我已使用以下命令安装了libusb。我不确定它是否正确,命令是

sudo apt-get install libusb-dev

一旦我安装了(我不确定它是否已经安装,因为我是Ubuntu的新手用户),我想知道如何使用该库,因为我写了一些使用<的示例代码。 libusb.h>,但是当我使用

编译该C ++文件时
g++ test_libusb.cpp

抛出以下错误,

  

test_libusb.cpp:2:20:致命错误:libusb.h:没有终止此类文件或目录编译。

我无能为力。我无法在互联网上找到任何资料来了解这个...

我想知道两件事:

  1. 如何在C / C ++中添加libusb库,以便我可以使用< libusb.h>?
  2. 一些示例代码是什么?只有几行才能看出libusb是否有效...

4 个答案:

答案 0 :(得分:9)

尝试包括它:

#include <libusb-1.0/libusb.h>

然后像这样编译它:

g++ main.cpp -o main -lusb-1.0

答案 1 :(得分:6)

查看http://packages.debian.org/wheezy/i386/libusb-dev/filelist:您要包含的文件是usb.h。此外,您必须告诉编译器它可以在哪里找到已编译的库函数:将-lusb添加到编译器命令行以使其加载libusb.so

答案 2 :(得分:6)

实际上至少在Debian 7.4(wheezy)中,也可能在Ubuntu中,有两个不同的libusb包:libusb-dev(0.1.12-20 + nmu1)和libusb-1.0-0-dev(1.0.11 -1)。令人困惑的是,它们可以同时安装并在不同位置提供头文件:

$ dpkg -L libusb-dev|grep /usr/include
/usr/include
/usr/include/usb.h
$ dpkg -L libusb-1.0-0-dev|grep /usr/include
/usr/include
/usr/include/libusb-1.0
/usr/include/libusb-1.0/libusb.h

答案 3 :(得分:5)

试试#include <usb.h>。 “lib”是Linux命名约定的一部分,即库“foo”具有头foo.h并在Debian包结构中称为libfoo-dev,并链接为-lfoo,并且已编译库文件称为libfoo.alibfoo.so