Компиляция против libusb-dev на Ubuntu

Я пытаюсь скомпилировать пример libusb.c предоставляется пакетом libusb (если вы dl исходный код.)

Это не работает, мягко говоря.

#include <stdio.h>
#include <sys/types.h>
#include <libusb/libusb.h>

это приводит к сбою, нет libusb/libusb.h это usb.h, поэтому я меняю это. И она терпит неудачу новыми и инновационными способами.

Я скопировал файл, точно, и назвал его примером.c

я использую эти команды и вариации:

gcc -o example example.c -lusb -L /usr/lib/libusb.a
gcc -o example example.c -lusb -L /usr/lib/libusb.so

ошибки, которые я получаю, когда составления являются:

example.c:25: error: expected ‘)’ before ‘*’ token
example.c: In function ‘main’:
example.c:46: error: ‘libusb_device’ undeclared (first use in this function)
example.c:46: error: (Each undeclared identifier is reported only once
example.c:46: error: for each function it appears in.)
example.c:46: error: ‘devs’ undeclared (first use in this function)

Line 25: static void print_devs(libusb_device **devs)

Line 46: libusb_device **devs;

сначала я следовал учебнику, и это не удалось скомпилировать, более или менее одинаково, поэтому я решил просто попробовать приведенный пример, и это не удалось.

может кто-нибудь помочь мне? Объясните, что я делаю неправильно, потому что я потерялся в этом.

2 ответов


это то, что я должен был сделать в Debian. Он должен быть по крайней мере похож на Ubuntu.

установить libusb-1.0-0-dev

вместо:

#include <libusb/libusb.h>

do:

#include <libusb.h>

скомпилировать с помощью:

gcc example.c `pkg-config --libs --cflags libusb-1.0`

просто en объяснение, почему ваша попытка заменить libusb/libusb.h с usb.h не удается: usb.h Это заголовок linux-headers, не libusb-dev. Вам нужно #include <libusb.h> вместо.