Я пытаюсь создать makefile для составления модуля ядра Linux с несколькими исходными файлами. Тем не менее, я сталкиваюсь с ошибкой компиляции , если я не указал файлы объектов.
Я пытаюсь создать [b] makefile [/b] для составления модуля ядра Linux с несколькими исходными файлами. Тем не менее, я сталкиваюсь с ошибкой компиляции [b] [/b], если я не указал файлы объектов.[code]#include #include #include
all: make -C /lib/modules/$(KERNEL)/build M=$(PWD) modules
clean: make -C /lib/modules/$(KERNEL)/build M=$(PWD) clean
.PHONY: all clean < /code> Compilation failed with the following message: make -C /lib/modules/6.11.0-21-generic/build M=/home/dev/LKM/SimpleLKM modules make[1]: Entering directory '/usr/src/linux-headers-6.11.0-21-generic' warning: the compiler differs from the one used to build the kernel The kernel was built by: x86_64-linux-gnu-gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0 You are using: gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0 make[3]: *** No rule to make target '/home/dev/LKM/SimpleLKM/SimpleLKM2.o', needed by '/home/dev/LKM/SimpleLKM/'. Stop. make[2]: *** [/usr/src/linux-headers-6.11.0-21-generic/Makefile:1932: /home/dev/LKM/SimpleLKM] Error 2 make[1]: *** [Makefile:224: __sub-make] Error 2 make[1]: Leaving directory '/usr/src/linux-headers-6.11.0-21-generic' make: *** [Makefile:15: all] Error 2 < /code> However, if I [b]manually[/b] set OBJS := simple_lkm.o Fun.o[/code], компиляция успешна.>