цель не соответствует шаблону цели - PullRequest
0 голосов
/ 01 апреля 2020

Я компилирую (и связываю) мой код драйвера Linux и получаю следующую ошибку при связывании модуля. Я попытался проверить мой Makefile на возможные ошибки (табуляции, пробелы и т. Д. c). Тем не менее, он в значительной степени используется для программирования моего другого модуля ядра, и он прекрасно работает. Любой вид poi

Модуль Sr c:

Makefile:

obj-m + = static_waitqueue_driver. c

KDIR = / lib / modules / $ (shell uname -r) / build

all: make - C $ (KDIR) M = $ (shell pwd) modules

clean: make - C $ (KDIR) M = $ (shell pwd) clean

Ошибка:

Пользователь: sudhanshu Хост: UbuntuVirtualBox Дата: ср. 01 апреля
Время : 13: 23: 36 24 ~ / tmp / 01_linux_learning / 10_wait_queue $ make make - C /lib/modules/5.3.0-28-generic/build M = / home / sudhanshu / tmp / 01_linux_learning / 10_wait_queue модули make [ 1]: вход в каталог '/usr/src/linux-headers-5.3.0-28-generic'
Сборка модулей, этап 2. scripts / Makefile.modpost: 113: target' / home / sudhanshu / tmp / 01_linux_learning / 10_wait_queue / static_waitqueue_driver. c 'не соответствует сценариям целевого шаблона / Makefile.modpost: 114: предупреждение: переопределение рецепта для цели' /home/sudhanshu/tmp/01_linux_learning/10_stue_verue 103 6 * 'scripts / Makefile.modpost: 101: предупреждение: игнорирование старого рецепта для цели' /home/sudhanshu/tmp/01_linux_learning/10_wait_queue/static_waitqueue_driver.c 'scripts / Makefile.modpost: 128: target' / home / sudhanshu /tmp/01_linux_learning/10_wait_queue/static_waitqueue_driver.c 'не соответствует целевым сценариям шаблонов / Makefile.modpost: 129: предупреждение: переопределение рецепта для цели' /home/sudhanshu/tmp/01_linux_learning/10_wait_queit.10_wawa_queri.1039 * 'scripts / Makefile.modpost: 114: предупреждение: игнорирование старого рецепта для цели' /home/sudhanshu/tmp/01_linux_learning/10_wait_queue/static_waitqueue_driver.c 'Модули MODPOST 1 LD [M] / home / sudhanshu / tmp / 01_linux_ /10_wait_queue/static_waitqueue_driver.c ld: нет входных файлов сценариев / Makefile.modpost: 129: рецепт для цели '/home/sudhanshu/tmp/01_linux_learning/10_wait_queue/static_waitqueue_driver.c: * не удалось 10 [2 ** [/home/sudhanshu/tmp/01_linux_learning/10_wait_queue/static_waitqueue_driver.c] Ошибка 1 Makefi le: 1658: рецепт для целевых «модулей» не выполнен make [1]: * [modules] Ошибка 2 make [1]: выход из каталога '/usr/src/linux-headers-5.3.0-28- generi c 'Makefile: 6: рецепт для цели' all 'не выполнен make: *** [all] Ошибка 2

1 Ответ

0 голосов
/ 01 апреля 2020

Я исправил эту ошибку. Я чувствую, что в Makefile был какой-то невидимый символ или отсутствующий "\ n (символ новой строки)", который создавал проблему.

Но когда я создал новый файл и набрал его вручную (ранее я вставлял копию) , тогда все заработало.

Решение: убедитесь, что в вашем make-файле нет специальных (невидимых) символов.

Последний Make-файл (скопируйте вставку из консоли):

1 obj-m + = static_waitqueue_driver.o 2 KDIR = / lib / modules / $ (shell uname -r) / build 3 все: 4 make - C $ (KDIR) M = $ (shell pwd) модули 5 clean : 6 make - C $ (KDIR) M = $ (shell pwd) clean

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...