8

我正在尝试编译 libusb 包提供的示例 libusb.c(如果您 dl 源代码。)

至少可以说是行不通的。

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

这导致它失败,没有libusb/libusb.husb.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;

起初我遵循了一个教程,但以或多或少相同的方式无法编译,所以我决定尝试提供的示例,但失败了。

谁能帮我吗?解释我做错了什么,因为我迷失了这个。

4

2 回答 2

25

这就是我在 Debian 上必须做的。它至少在 Ubuntu 中应该是相似的。

安装libusb-1.0-0-dev

代替:

#include <libusb/libusb.h>

做:

#include <libusb.h>

编译:

gcc example.c `pkg-config --libs --cflags libusb-1.0`
于 2011-10-12T14:03:42.990 回答
7

只是解释为什么您尝试替换libusb/libusb.husb.h失败:usb.h是来自 的标题linux-headers,而不是来自libusb-dev. 你需要#include <libusb.h>

于 2011-10-12T14:07:33.870 回答