5

我已经使用以下命令安装了 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

4 回答 4

9

尝试像这样包含它:

#include <libusb-1.0/libusb.h>

然后像这样编译它:

g++ main.cpp -o main -lusb-1.0
于 2013-12-10T22:54:00.210 回答
6

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

于 2013-02-23T14:04:16.397 回答
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
于 2014-03-03T21:26:35.087 回答
5

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

于 2013-02-23T14:04:05.927 回答