浪狼郎 2019-04-12 00:21 采纳率: 0%
浏览 1253

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

按书上的编译模块,在写好了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条回答

  • 林雪莫 2019-04-13 11:03
    关注

    因为你根本没编译first.c这个文件啊

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器