未定义的引用 usb_init()

Undefined reference usb_init()

我正在使用 libusb 为键盘开发自定义 USB 驱动程序。我写了一个简单的程序并尝试编译该程序我收到警告并且未生成输出文件。

这是我的程序。

#include <stdio.h>
#include <libusb-1.0/libusb.h>

void main(){
  usb_init(NULL);
    return;
}

错误信息是

sample.c: In function ‘main’:
sample.c:7:3: warning: implicit declaration of function ‘usb_init’ [-Wimplicit-function-declaration]
   usb_init(NULL);
   ^
/tmp/ccYbyFAK.o: In function `main':
sample.c:(.text+0xf): undefined reference to `usb_init'
collect2: error: ld returned 1 exit status

我运行这条命令设置库衬标志,命令执行成功。

pkg-config --list-all
pkg-config --libs libusb

我尝试了以下命令来执行我的程序

gcc -o output sample.c -lusb-1.0
gcc -o output sample.c -libusb-1.0

请帮我解决这个问题

您包含了 libusb 1.0 的头文件,但您使用的是 usb_init,该函数是 而非 的一部分 API。请注意,libusb 0.1 确实很旧,并且 API 与 libusb 1.0 不同。你应该参考 libusb 1.0 的文档来了解 libusb 1.0 支持哪些功能:

https://libusb.info/