【问题标题】:Libusb and how to use its packages in UbuntuLibusb 以及如何在 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 上找不到任何资源来深入了解这个...

这里我想知道两件事:

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

【问题讨论】:

    标签: c++ c ubuntu installation 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

    【讨论】:

    • 正如我所说,如果您在上面的示例中看到该页面 stackoverflow.com/questions/14722083/…,我是新手,他们使用了 libusb 示例,正如我提到的 '#incluce '
    • @UsmanSharifAmjadKhan:嗯,至少在 debianish 系统上,包含文件被命名为 usb.h,而不是 libusb.h,所以你需要使用 #include &lt;usb.h&gt;
    【解决方案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 &lt;usb.h&gt;。 “lib”是Linux命名约定的一部分,即库“foo”的标头为foo.h,在Debian包结构中称为libfoo-dev,链接为-lfoo,编译后的库文件称为@987654325 @ 和libfoo.so

      【讨论】:

      • 它使用-lfoo链接,而不是-libfoo
      猜你喜欢
      • 2011-06-18
      • 1970-01-01
      • 2013-06-13
      • 1970-01-01
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      相关资源
      最近更新 更多