Компиляция против libusb-dev в Ubuntu - PullRequest
8 голосов
/ 12 октября 2011

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

Это не работает, если не сказать больше.

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

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

Я точно скопировал файл и назвал его example.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 ]

25 голосов
/ 12 октября 2011

Это то, что я должен был сделать в Debian. Это должно быть как минимум аналогично в Ubuntu.

Установка libusb-1.0-0-dev

Вместо:

#include <libusb/libusb.h>

сделать:

#include <libusb.h>

Компилировать с:

gcc example.c `pkg-config --libs --cflags libusb-1.0`
6 голосов
/ 12 октября 2011

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

...