linux测试模块编译失败,gcc中没有输入文件。

问题描述 投票:0回答:1

我想根据一本书的内容,为linux建立一个测试模块,我过去做过这个简单的例子,但今天早上失败了,在我的目录~LINUX中,我有一个这样的文件。

#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
    printk(KERN_ALERT "Hello, world\n");
    return 0;
}

static void hello_exit(void)
{
    printk(KERN_ALERT "Goodbye, cruel world\n");
}

module_init(hello_init);
module_exit(hello_exit);

'uname -r'显示'4.15.0-99-generic'.Makefile是这样的(在~LINUX中)

obj-m += test1.ko

all:
    make -C /lib/modules/4.15.0-99-generic/build M=$(PWD) modules

clean:
    make -C /lib/modules/4.15.0-99-generic/build M=$(PWD) clean

当我运行make时,它给我

make -C /lib/modules/4.15.0-99-generic/build M=/home/ckim/LINUX modules
make[1]: Entering directory '/usr/src/linux-headers-4.15.0-99-generic'
scripts/Makefile.build:336: target '/home/ckim/LINUX/test1.ko' doesn't match the target pattern
  CC [M]  /home/ckim/LINUX/test1.ko
gcc: fatal error: no input files
compilation terminated.
scripts/Makefile.build:337: recipe for target '/home/ckim/LINUX/test1.ko' failed
make[2]: *** [/home/ckim/LINUX/test1.ko] Error 1
Makefile:1577: recipe for target '_module_/home/ckim/LINUX' failed
make[1]: *** [_module_/home/ckim/LINUX] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-99-generic'
Makefile:4: recipe for target 'all' failed
make: *** [all] Error 2

错在哪里?

linux makefile linux-device-driver
1个回答
0
投票
obj-m += test1.ko 

应是

obj-m += test1.o
© www.soinside.com 2019 - 2024. All rights reserved.