我已使用以下命令安装了libusb。我不确定它是否正确,命令是
sudo apt-get install libusb-dev
一旦我安装了(我不确定它是否已经安装,因为我是Ubuntu的新手用户),我想知道如何使用该库,因为我写了一些使用<的示例代码。 libusb.h>,但是当我使用
编译该C ++文件时g++ test_libusb.cpp
抛出以下错误,
test_libusb.cpp:2:20:致命错误:libusb.h:没有终止此类文件或目录编译。
我无能为力。我无法在互联网上找到任何资料来了解这个...
我想知道两件事:
答案 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.a
和libfoo.so
。