Неопределенная ссылка usb_init () - PullRequest
1 голос
/ 23 апреля 2019

Я работаю над настраиваемым драйвером USB для клавиатуры, используя libusb. Я написал простую программу и попытался скомпилировать ту программу, которую получил предупреждение, а выходной файл не сгенерирован.

Это моя программа.

#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 голосов
/ 23 апреля 2019

Вы включаете файл заголовка для libusb 1.0, но используете usb_init, функцию, которая не является частью его API. Обратите внимание, что libusb 0.1 действительно старый и имеет API, отличный от libusb 1.0. Вам следует обратиться к документации по libusb 1.0, чтобы узнать, какие функции поддерживаются в libusb 1.0:

https://libusb.info/

...