C++ Libusb及其包在Ubuntu中的使用
我使用以下命令安装了libusb。我不确定这是否正确,命令是正确的C++ Libusb及其包在Ubuntu中的使用,c++,c,ubuntu,installation,libusb,C++,C,Ubuntu,Installation,Libusb,我使用以下命令安装了libusb。我不确定这是否正确,命令是正确的 sudo apt-get install libusb-dev 一旦安装好(我不确定它是否安装,因为我是Ubuntu的新手),我想知道我将如何使用这个库,因为我写了一些使用的代码,但是当我用编译C++文件时 g++ test_libusb.cpp 这将抛出以下错误 test_libusb.cpp:2:20:致命错误:libusb.h:没有终止此类文件或目录编译 我不知道该怎么办。我在互联网上找不到任何来源来弄清这件事 我想知
sudo apt-get install libusb-dev
一旦安装好(我不确定它是否安装,因为我是Ubuntu的新手),我想知道我将如何使用这个库,因为我写了一些使用的代码,但是当我用
编译C++文件时g++ test_libusb.cpp
这将抛出以下错误
test_libusb.cpp:2:20:致命错误:libusb.h:没有终止此类文件或目录编译
我不知道该怎么办。我在互联网上找不到任何来源来弄清这件事
我想知道两件事:
尝试
#包括。“lib”是Linux命名约定的一部分,即库“foo”具有头foo.h
,在Debian包结构中称为libfoo-dev
,链接为-lfoo
,编译后的库文件称为libfoo.a
和libfoo.so
请看一看:要包含的文件是usb.h
。此外,您还必须告诉编译器在哪里可以找到已编译的库函数:将-lusb
添加到编译器命令行以使其加载libusb。因此
尝试将其包括在内,如下所示:
#include <libusb-1.0/libusb.h>
g++ main.cpp -o main -lusb-1.0
实际上,至少在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
它是用-lfoo
链接的,而不是-libfoo
。正如我说的,如果你在上面的例子中看到这个页面,我是一个新手,他们使用了libusb示例,正如我提到的'#include'@UsmanSharifAmjadKhan:嗯,至少在debianish系统上,包含文件名为usb.h
,而不是libusb.h
,因此,您需要使用#include
。这应该是公认的答案。我使用Fedora24,libusb位于/usr/include/libusb-1.0/libusb.h,将“-1.0”添加到“-lusb-1.0”修复了所有问题