make[2]:***没有规则制作目标XXX,由XXX需求。停止。

本文记录了一次驱动编写过程中的常见错误:驱动源文件名与目标文件名不一致导致的编译失败。通过排查发现,虽然kernel路径正确且已成功编译,但因驱动文件名与目标文件名不符,引发编译错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录一次驱动编写中遇到的错误。

写了一个简单的驱动,编写Makefile,内容如下:

#模块名称
obj-m:=xxx.o                     
#kernel路径
KDIR:=/yyy/zzz 
#获取当前路径
PWD?=$(shell pwd)

all:
	make -C $(KDIR) M=$(PWD) modules
clean:
	rm -rf xxx.o

make时,出现错误:

make[1]: 进入目录“/yyy/zzz”
make[2]: *** 没有规则可制作目标“/xxx.c”,由“/xxx.o” 需求。 停止。

查找问题的时候,一直把关注点放在kernel路径上。仔细检查,路径没有错误,目录下也有makefile,kernel也成功编译过了。

那么问题在哪里呢?

原来,驱动c文件的名称为xxxx,目标文件名为xxx!c文件和目标文件名称要一致。

简单而又深刻的教训啊!

o(╯□╰)o 

### Linux `top` 命令详解 #### 功能概述 `top` 是 Linux 下常用的性能分析工具,可以实时显示系统中各个进程的资源占用情况,类似于 Windows 的任务管理器[^1]。 #### 使用方法 在 Linux 终端输入 `top` 即可启动此命令。这会打开一个交互式的界面,其中包含了多个重要指标的信息。 #### 关键字段说明 - **VIRT (Virtual Memory Usage)** 表示虚拟内存使用量,涵盖了程序使用的全部可用地址空间大小,包括已分配的实际物理内存以及交换分区中的部分数据[^2]。 - **RES (Resident Set Size)** 实际驻留于 RAM 中的进程所占字节数;这部分不会被分页到磁盘上去。 - **SHR (Shared Memory)** 进程共享库及其他映射文件占据的空间总量,在多线程应用里也包含堆栈区等共用区域。 - **%CPU** 显示各进程中 CPU 时间占比百分比,反映着它们消耗计算能力的程度。 - **%MEM** 展现了每个正在运行的应用相对于总安装内存量而言所占用的比例。 #### 输出实例解读 当执行 `top` 后得到如下输出: ```plaintext top - 14:37:50 up 2 days, 3:45, 1 user, load average: 0.06, 0.08, 0.09 Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie %Cpu(s): 7.8 us, 2.1 sy, 0.0 ni, 89.6 id, 0.2 wa, 0.0 hi, 0.3 si, 0.0 st MiB Mem : 7912.0 total, 123.4 free, 2345.6 used, 5442.9 buff/cache MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 5234.5 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 root 20 0 123456 65432 3210 R 10.0 8.0 0:01.23 someprocess ... ``` 上述表格展示了系统的整体状态概览,其中包括但不限于: - 当前时间戳、开机时长、活跃用户数及平均负载; - 正在处理的任务数量统计; - CPU 利用率细目划分; - 物理内存与交换空间的状态报告; - 排序后的活动进程列表及其各项参数详情。 #### 高级特性 除了基础功能外,`top` 支持多种自定义选项来调整展示的内容和样式,例如按特定列排序、过滤指定条件下的条目等操作。对于更深入的学习者来说,掌握这些高级特性的运用有助于更好地理解并优化服务器性能表现。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

will.hu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值