【发布时间】:2020-07-12 22:21:32
【问题描述】:
我正在编译(和链接)我的 Linux 驱动程序代码,并在模块链接时收到以下错误。我试图检查我的 Makefile 是否有任何潜在的错误(制表符、空格等)。但是,它几乎用于我的其他内核模块编程并且工作正常。任何类型的poi
模块源代码:
生成文件:
obj-m += static_waitqueue_driver.c
KDIR = /lib/modules/$(shell uname -r)/build
全部: 制作 -C $(KDIR) M=$(shell pwd) 模块
干净: 使 -C $(KDIR) M=$(shell pwd) 干净
错误:
用户:sudhanshu 主机:UbuntuVirtualBox 日期:Wed Apr 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_wait_queue/static_waitqueue_driver.c' 脚本/Makefile.modpost:101:警告:忽略目标的旧配方 '/home/sudhanshu/tmp/01_linux_learning/10_wait_queue/static_waitqueue_driver.c' 脚本/Makefile.modpost:128:目标 '/home/sudhanshu/tmp/01_linux_learning/10_wait_queue/static_waitqueue_driver.c' 与目标模式脚本/Makefile.modpost:129 不匹配: 警告:覆盖目标的配方 '/home/sudhanshu/tmp/01_linux_learning/10_wait_queue/static_waitqueue_driver.c' 脚本/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_learning/10_wait_queue/static_waitqueue_driver.c ld:没有输入文件脚本/Makefile.modpost:129:目标配方 '/home/sudhanshu/tmp/01_linux_learning/10_wait_queue/static_waitqueue_driver.c' 制造失败 [2]: * [/home/sudhanshu/tmp/01_linux_learning/10_wait_queue/static_waitqueue_driver.c] 错误 1 Makefile:1658: 目标“模块”的配方失败 make[1]: * [模块] 错误 2 make[1]: 离开目录 '/usr/src/linux-headers-5.3.0-28-generic' Makefile:6: 配方 目标 'all' 失败 make: *** [all] 错误 2
【问题讨论】: