2016-02-29 6 views
0

Я пытаюсь создать простой файл make и использовать его для создания простой c-программы. Окружающая среда находится в виртуальной коробке, используя новейшую версию ubuntu. Я уже загрузил заголовки linux для ubuntu, но все еще получаю ошибку.Simple Make File Error

hello.c

#include <linux/init.h> 
#include <linux/module.h> 

static int hello_init(void) { 
    printk(KERN_ALERT "TEST: Hello world, this is soliducode\n"); 
    return 0; 
} 

static void hello_exit(void) { 
    printk(KERN_ALERT "TEST: Good byte, from soliduscode"); 
} 

module_init(hello_init); 
module_exit(hello_exit); 

Makefile

obj-m += Hello.o 

KDIR = /usr/src/linux-headers-4.2.0-16-generic 

all: 
    $(MAKE) -C $(KDIR) SUBSIRS=$ modules 

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

Ошибка

make -C /usr/src/linux-headers-4.2.0-16-generic SUBSIRS=modules 
make[1]: Entering directory '/usr/src/linux-headers-4.2.0-16-generic' 
arch/x86/Makefile:138: CONFIG_X86_X32 enabled but no binutils support 
Makefile:669: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler 
    HOSTCC scripts/basic/fixdep 
scripts/basic/fixdep.c:462:1: fatal error: opening dependency file scripts/basic/.fixdep.d: Permission denied 
} 
^ 
compilation terminated. 
scripts/Makefile.host:91: recipe for target 'scripts/basic/fixdep' failed 
make[3]: *** [scripts/basic/fixdep] Error 1 
Makefile:449: recipe for target 'scripts_basic' failed 
make[2]: *** [scripts_basic] Error 2 
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:184: recipe for target 'archheaders' failed 
make[1]: *** [archheaders] Error 2 
make[1]: Leaving directory '/usr/src/linux-headers-4.2.0-16-generic' 
Makefile:6: recipe for target 'all' failed 
make: *** [all] Error 2 

ответ