я написал простой модуль Линукса & его делает файлмарки: неты правил, чтобы сделать целевую
это мой модуль
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void) {
printk("<1> Hello world!\n");
return 0;
}
static void hello_exit(void) {
printk("<1> Bye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
это мой макияж файл
obj-m :=Hello.o
KDIR = /usr/src/linux-headers-3.5.0-17
all:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
rm -rf *.o *.ko *.mod.* *.symvers *.order
, когда я выполнить make -f MakeFile дает следующие o/p
make -C /usr/src/linux-headers-3.5.0-17 SUBDIRS=/home/linux/Desktop modules
make[1]: Entering directory `/usr/src/linux-headers-3.5.0-17'
WARNING: Symbol version dump /usr/src/linux-headers-3.5.0-17/Module.symvers
is missing; modules will have no dependencies and modversions.
scripts/Makefile.build:44: /home/linux/Desktop/Makefile: No such file or directory
make[2]: *** No rule to make target `/home/linux/Desktop/Makefile'. Stop.
make[1]: *** [_module_/home/linux/Desktop] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.5.0-17'
make: *** [all] Error 2
Может ли кто-нибудь сказать мне, как избавиться от этих ошибок. Заранее спасибо
Почему это необходимо установить 'SUBDIR' в' $ pwd'? У вас есть файл '/ home/linux/Desktop/Makefile'? По моему опыту нет необходимости устанавливать 'SUBDIR'. Вы можете попробовать удалить 'SUBDIR' в' all: 'и переделать его. – starrify
спасибо за повтор после удаления subdir this error apper make [1]: *** Никаких заданных целей и никакого файла makefile не найдено. Стоп. –
Извините за мой неосторожный ответ. Я полагаю, что вам нужно будет восстановить 'SUBDIR' и переименовать ваш MakeFile в' Makefile' и повторить попытку, так как в нем отсутствует файл 'Makefile' и' * nix' чувствителен к регистру. – starrify