Компиляция против 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>
вместо.