未定义的参考usb_init()

时间:2019-04-23 16:33:51

标签: c linux usb libusb-1.0

我正在使用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

请帮助我解决此问题

1 个答案:

答案 0 :(得分:0)

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

https://libusb.info/