Мой make-файл приводит к: Никакое правило сделать цель 'arch/x86/tools/relocs.c', необходимой

Я использую Ubuntu 12.04. Я записал простому привет мировой модуль ядра (hello.c). Я записал следующий make-файл для него:

obj-m+=hello.o
KDIR:= /usr/src/linux-headers-3.2.0-24-generic-pae
all:
     $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
     rm -rf *.o *.ko *.mod.* *.symvers *.order 

Но эта ошибка неожиданно возникла, когда я действительно делал из ядра:

make[1]: Entering directory `/usr/src/linux-headers-3.2.0-24-generic-pae'
make[2]: *** No rule to make target `arch/x86/tools/relocs.c', needed
by `arch/x86/tools/relocs'.  Stop.

hello.c и makefile находятся в /Documents/module_prog. Я работал make из того каталога.

Что вызывает эту ошибку и как я могу зафиксировать ее?

2
задан 23 August 2014 в 22:23

2 ответа

В файле make просто измените SUBDIRS=$(PWD) на M=$(shell pwd) ...

Работает как шарм

0
ответ дан 23 August 2014 в 22:23

Требуются заголовки i386:

sudo apt-get install linux-headers-$(uname -r | sed 's/\(.*\)-[a-z]*/\1/'):i386

Пример:

sudo apt-get install linux-headers-5.4.0-42:i386
3
ответ дан 30 August 2020 в 00:18

Другие вопросы по тегам:

Похожие вопросы: