为什么我编译设备驱动程序时出现很多nothing to be done for 'modules'
这是什么原因啊,也是根据一个很简单的Makefile进行的。这可能是什么问题啊
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
这是什么原因啊,也是根据一个很简单的Makefile进行的。这可能是什么问题啊
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
自己写的makefile文件如下:
obj-m : = test.o
KERNELDIR := /usr/src/linux-2.4.20-8
PWD :=$(shell pwd)
default:
(tab键)make -C $(KERNELDIR) M=$(shell pwd) modules
clean:
(tab键)rm *.o *.mod.c *.symvers *.ko
我发现我编译内核时候,make modules时就出现一些nothing to be done for 'modules'错误现象,如mm,和lib相关的,不知道是不是我 make menuconfig配置造成的吗?
没有错误,这些文件没有发生改变,就不需要重新编译了。这也是Makefile的一个机制,如果你每次编译都完全重新编译——即使有些文件和目录都没有改变,那么编译的时间可能很长。拥有这样一个检查机制,就可以方便的只编译你改动的目录及相关文件,大大节省了编译时间。
可是,我编译后没有出现自己的需要的驱动可执行程序啊,
makefile可能写得不对
LZ限制性一下make clean,然后在make。
看一下有什么提示,或者生成了什么文件
建议make dep操作一下
我最近觉得这个“nothing to be done for 'modules'可能没有问题,是不是我Makefile有问题啊,我发现MAKE不能进入源代码树中,而就出去了。这是怎么回事情,是不是必须编译,安装内核成功后才能在新内核启动后使用吗?
我不知道你的内核源码树是不是构建起来了。