欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

make[1]: *** No rule to make target '.depend.XXXX', needed by '.XX'. Stop.解决

程序员文章站 2022-05-03 09:15:35
...

  最近在移植uboot支持NANDFLASH时,遇到一个错误。烦了两天,终于找到了!具体报错如下。

make[1]: *** No rule to make target '.depend.s3c2440_nand', needed by '.depend'.  Stop.
make[1]: Leaving directory '/work/system/u-boot-2012.04.01/drivers/mtd/nand'
Makefile:485: recipe for target 'drivers/mtd/nand/libnand.o' failed
make: *** [drivers/mtd/nand/libnand.o] Error 2

  大概意思就是:在链接libnand.o时找不到s3c2440_nand的依赖文件。
  后来仔细检查了makefile,确保了已经在makefile中添加了
s3c2440_nand.c的依赖文件。如图:
make[1]: *** No rule to make target '.depend.XXXX', needed by '.XX'. Stop.解决
  接着考虑是不是代码写错了。对照自己修改的部分如下:
make[1]: *** No rule to make target '.depend.XXXX', needed by '.XX'. Stop.解决
make[1]: *** No rule to make target '.depend.XXXX', needed by '.XX'. Stop.解决
make[1]: *** No rule to make target '.depend.XXXX', needed by '.XX'. Stop.解决
make[1]: *** No rule to make target '.depend.XXXX', needed by '.XX'. Stop.解决
make[1]: *** No rule to make target '.depend.XXXX', needed by '.XX'. Stop.解决
  检查好几遍发现代码并没有错。宏开关也都打开了 ,初始化,内存,寄存器等都配置了。仔细一想,如果是代码错误,编译不应该报这样的错误。
  google时参考了几篇文章,解决办法都不相同,但是问题都是出在makefile
。最后确定就是makefile的原因,可能自己没有发现。
http://blog.csdn.net/vblittleboy/article/details/21012991
http://blog.csdn.net/roserose0002/article/details/38397537
  仔细看了s3c2440_nand.c文件名也没写错。
make[1]: *** No rule to make target '.depend.XXXX', needed by '.XX'. Stop.解决
make[1]: *** No rule to make target '.depend.XXXX', needed by '.XX'. Stop.解决
  接着我重新复制windows下的文件的名字到makefile下,更改.o依赖的名字发现是多了一个空格
make[1]: *** No rule to make target '.depend.XXXX', needed by '.XX'. Stop.解决
  第一次修改时,没注意到这个空格,所以我就删去了。今天才发现这里有问题,接着删去windows下的文件和ubuntu下makefile的空格符号,编译就通过了。
make[1]: *** No rule to make target '.depend.XXXX', needed by '.XX'. Stop.解决
  太大意了。这个错误困扰了两天。第一天仔细检查了代码,google找资料,没有解决。今天再拿出来看,才发现这个错误。有时候错误并不能一眼看出来。换个时间,再回来看或许有不一样的结果!