2016-11-22 238 views
2

我试图建立一个演示内核模块,但是当我做,我获得以下,如何解决:无法制定目标?

make[1]: Entering directory '/usr/src/linux-headers-4.4.0-47-generic' 
make[2]: *** No rule to make target 'arch/x86/entry/syscalls/syscall_32.tbl', needed by 'arch/x86/entry/syscalls/../../include/generated/asm/syscalls_32.h'. Stop. 
arch/x86/Makefile:199: recipe for target 'archheaders' failed                      
make[1]: *** [archheaders] Error 2 
make[1]: Leaving directory '/usr/src/linux-headers-4.4.0-47-generic' 
Makefile:4: recipe for target 'all' failed 

我建立模块用的linux内核 - 4.4.0-47版本 - 64位操作系统。任何人都可以请帮助我理解为什么我面临这个错误。请提前感谢您。

+0

您是否尝试过Google?错误'没有规则使目标'arch/x86/entry/syscalls/syscall_32.tbl''非常流行,并且可能有几个下划线问题。 **如何编译内核模块(您使用哪种makefile或哪个命令行)? – Tsyvarev

回答

0

确保你有正确的make文件。这是一个非常普遍的问题。 或者你也可以在makefile中使用下面的语句。

obj-m += your_module_name.o 

all: 
     make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 
clean: 
     make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 

它应该工作。

相关问题