Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Libusb及其包在Ubuntu中的使用_C++_C_Ubuntu_Installation_Libusb - Fatal编程技术网

C++ Libusb及其包在Ubuntu中的使用

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:没有终止此类文件或目录编译 我不知道该怎么办。我在互联网上找不到任何来源来弄清这件事 我想知

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

sudo apt-get install libusb-dev

一旦安装好(我不确定它是否安装,因为我是Ubuntu的新手),我想知道我将如何使用这个库,因为我写了一些使用的代码,但是当我用

编译C++文件时
g++ test_libusb.cpp
这将抛出以下错误

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

我不知道该怎么办。我在互联网上找不到任何来源来弄清这件事

我想知道两件事:

  • 如何在C/C++中添加libusb库以便使用
  • 一些示例代码是什么?只有几行代码可以查看libusb是否正常工作

  • 尝试
    #包括
    。“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”修复了所有问题