2016-10-29 11 views
-1

Ich möchte dieses Kernel-ModulKompilierung Kernelmodul Fehler

Codedatei hello.c

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

int init_module(void) { 
    printk(KERN_INFO "Hello world!\n"); 
    return 0; 
} 
void cleanup_module(void) { 
    printk(KERN_INFO "Goodbye world!\n"); 
} 

i unter

die Make-Datei lief laufen
obj-m += hello.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 

aber ich die folgenden Fehler bekommen

make -C /lib/modules/4.4.0-45-generic/build M=/home/fyousry/Desktop/Untitled Folder 4 modules 
make[1]: Entering directory '/usr/src/linux-headers-4.4.0-45-generic' 
arch/x86/Makefile:148: CONFIG_X86_X32 enabled but no binutils support 
Makefile:676: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler 
make[1]: *** No rule to make target 'Folder'. Stop. 
make[1]: Leaving directory '/usr/src/linux-headers-4.4.0-45-generic' 
Makefile:3: recipe for target 'all' failed 
make: *** [all] Error 2 

Antwort

0

der Direktor y, die diesen Code enthalten hat Platz wenn ich entferne Raum ist es Arbeit (UntitledFolder4 statt Untitled Folder 4)

0

sollten Sie doppelte Anführungszeichen verwenden, wenn Sie einen Pfad zu einem Befehl geben, vor allem, wenn der Pfad einen Unterbefehl enthalten oder eine Variable. Beispiel:

make -C "/lib/modules/$(shell uname -r)/build" "M=$(PWD)" modules 
0

Sie auch den Raum entweichen kann, wenn Sie es behalten wollen Abstand:

make -C /lib/modules/4.4.0-45-generic/build M=/home/fyousry/Desktop/Untitled\ Folder\ 4 modules