libusb 程序的 makefile

makefile for a libusb program

我已经使用 libusb 制作了一个 C 程序,我正在使用以下命令对其进行编译:

gcc -o usbtest.o usbtest.c -lusb-1.0

程序运行良好。接下来,我将 "usbtest.c" 的代码添加到内核模块 (usbmod.c) 并且我被 make 文件困住了。我不确定我应该在 "all" 部分传递什么命令。这是我所做的:

obj-m := usbmod.o

KERNEL_DIR = /lib/modules/$(shell uname -r)/build
PWD = $(shell pwd)

all:
    $(MAKE) -C $(KERNEL_DIR) SUBDIRS=$(PWD) modules

clean:
    rm -rf *.o *.ko *.mod.* *.symvers *.order *-

运行 make 后,出现以下错误:

anubhav@anubhav-Inspiron-3421:~/Desktop/usb$ make
make -C /lib/modules/3.13.0-46-generic/build     SUBDIRS=/home/anubhav/Desktop/usb modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-46-generic'
CC [M]  /home/anubhav/Desktop/usb/usbmod.o
/home/anubhav/Desktop/usb/usbmod.c:3:19: fatal error: stdio.h: No such  file or directory
#include <stdio.h>
               ^
compilation terminated.
make[2]: *** [/home/anubhav/Desktop/usb/usbmod.o] Error 1
make[1]: *** [_module_/home/anubhav/Desktop/usb] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-46-generic'
make: *** [all] Error 2

不确定是否需要将任何头文件带到我的工作目录或什么。请提供建议。

好的,所以这个link在一定程度上澄清了我的疑惑:

[][1]error: stdio.h: No such file or directory error during make

它说 "stdio.h" 并且内核中都不存在 space 因此会出现此类错误。此外,显然我的模块不包含任何 printf 所以我想我不需要 "stdio.h".

但它确实广泛使用了 libusb。那么,有没有办法真正创建这个模块。