【问题标题】:libusb in linuxlinux中的libusb
【发布时间】:2013-02-11 15:53:20
【问题描述】:

我喜欢用 libusb 做 USB 编程。 我使用

安装它
$ apt-get install libusb-1.0

然后

$ apt-get install libusb-1.0-0-dev

但是我尝试在c代码中使用后,出现编译错误。

#include <stdio.h>

#include <libusb-1.0/libusb.h>

int main(){
  usb_init(NULL);
  return 0;
} 

编译器错误是:

**/tmp/ccgCZXTu.o:在函数“main”中: test.c:(.text+0xf): undefined reference to `usb_init' collect2:错误:ld 返回 1 个退出状态**

为什么会这样?

【问题讨论】:

    标签: linux usb kernel device-driver libusb


    【解决方案1】:

    这是一个链接器错误,您没有告诉编译器您的代码需要与 libusb 库链接。

    仅仅在 C 中使用 #include 是不够的,它所做的只是提供讨论库代码所需的声明,它不会以任何方式引用代码本身。

    $(pkg-config --libs libusb) 添加到您的 GCC 命令行。

    【讨论】:

      【解决方案2】:

      考虑使用

      pkg-config --libs libusb-1.0
      

      对于 libusb-1.0

      【讨论】:

        【解决方案3】:

        您可以将其包含为:

        #include </usr/local/include/libusb-1.0/libusb.h>  
        

        【讨论】:

          猜你喜欢
          • 2019-08-11
          • 1970-01-01
          • 2023-04-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-05
          • 1970-01-01
          • 1970-01-01
          • 2011-04-13
          相关资源
          最近更新 更多