qq_43079236
浪狼郎
2019-04-12 00:21

ubuntu make编译内核提示缺少.o文件

  • ubuntu
  • linux

按书上的编译模块,在写好了Makefile和first.c之后,执行make指令,出现了以下错误:

os@os-virtual-machine:~/文档/OS$ makehttp://ask.csdn.net/pages/markdown
make -C /lib/modules/4.16.3/build M=/home/os/文档/OS modules
make[1]: Entering directory '/home/os/linux-4.16.3'
make[2]: *** No rule to make target '/home/os/文档/OS/first.o', needed by '/home/os/文档/OS/fir.o'。 停止。
Makefile:1561: recipe for target '_module_/home/os/文档/OS' failed
make[1]: *** [_module_/home/os/文档/OS] Error 2
make[1]: Leaving directory '/home/os/linux-4.16.3'
Makefile:6: recipe for target 'default' failed
make: *** [default] Error 2

我写的Makefile文件:

obj-m:=fir.o
fir-objs:=first.o
KDIR:=/lib/modules/$(shell uname -r)/build
PWD:=$(shell pwd)
default:
        make -C $(KDIR) M=$(PWD) modules
clean:
        make -C $(KDIR) M=$(PWD) clean

(make前面是tab,复制过来有问题)

我写的first.c文件:

#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/sched.h>
static int first_init(void) {
    struct task_struct *p;
    p=NULL;
    printk(KERN_ALERT"first start");
    printk(KERN_ALERT"名称\t进程号\t状态\t优先级\t父进程PID");
    for_each_process(p){
    printk(KERN_ALERT"%s\t%d\t%d\t%d\t%d\n",p->comm,p->pid, p->state,p->prio,p->parent->pid);
    }
    return 0;

}

static void first_exit(void)
{
        printk(KERN_ALERT"first exit");
}


module_init(first_init);
module_exit(first_exit);
MODULE_LICENSE("GPL");

Makefile和first.c都在文档下新建的os文件夹中,我在其他地方也尝试过,没什么结果。
跪求大神指点

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答

为你推荐