Libusb 以及如何在 Ubuntu 中使用它的包
Posted
技术标签:
【中文标题】Libusb 以及如何在 Ubuntu 中使用它的包【英文标题】:Libusb and how to use its packages in Ubuntu 【发布时间】:2013-02-09 01:58:09 【问题描述】:我已经使用以下命令安装了 libusb。我不确定它是否正确,命令是
sudo apt-get install libusb-dev
一旦我安装了(我不确定它是否已经安装,因为我是 Ubuntu 的新手用户),我想知道我将如何使用该库,因为我编写了一些使用 ,但是当我使用
编译该 C++ 文件时g++ test_libusb.cpp
引发以下错误,
test_libusb.cpp:2:20:致命错误:libusb.h:没有此类文件或目录编译终止。
我不知道该怎么办。我在 Internet 上找不到任何资源来深入了解这个...
这里我想知道两件事:
-
如何在 C/C++ 中添加 libusb 库以便使用 ?
一些示例代码是什么?只需几行即可查看 libusb 是否正常工作...
【问题讨论】:
【参考方案1】:尝试像这样包含它:
#include <libusb-1.0/libusb.h>
然后像这样编译它:
g++ main.cpp -o main -lusb-1.0
【讨论】:
这应该是公认的答案。我使用 Fedora 24,libusb 位于 /usr/include/libusb-1.0/libusb.h 将“-1.0”添加到“-lusb-1.0”修复了所有问题【参考方案2】:查看http://packages.debian.org/wheezy/i386/libusb-dev/filelist:您要包含的文件是usb.h
。此外,您必须告诉编译器在哪里可以找到已编译的库函数:将 -lusb
添加到编译器命令行以使其加载 libusb.so
。
【讨论】:
正如我所说,如果您在上面的示例中看到该页面 ***.com/questions/14722083/…,我是新手,他们使用了 libusb 示例,正如我提到的 '#incluce ' @UsmanSharifAmjadKhan:嗯,至少在 debianish 系统上,包含文件被命名为usb.h
,而不是 libusb.h
,所以你需要使用 #include <usb.h>
。【参考方案3】:
实际上至少在 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
【讨论】:
【参考方案4】:试试#include <usb.h>
。 “lib”是Linux命名约定的一部分,即库“foo”的标头为foo.h
,在Debian包结构中称为libfoo-dev
,链接为-lfoo
,编译后的库文件称为@987654325 @ 和libfoo.so
。
【讨论】:
它使用-lfoo
链接,而不是-libfoo
。以上是关于Libusb 以及如何在 Ubuntu 中使用它的包的主要内容,如果未能解决你的问题,请参考以下文章
ubuntu14 16使用libusb过程中遇到的问题及解决方法
如何使用 libusb 和 libusb_get_device_descriptor()?