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

  最近在移植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的依賴文件。如圖:
在這裏插入圖片描述
  接着考慮是不是代碼寫錯了。對照自己修改的部分如下:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
  檢查好幾遍發現代碼並沒有錯。宏開關也都打開了 ,初始化,內存,寄存器等都配置了。仔細一想,如果是代碼錯誤,編譯不應該報這樣的錯誤。
  google時參考了幾篇文章,解決辦法都不相同,但是問題都是出在makefile
。最後確定就是makefile的原因,可能自己沒有發現。
http://blog.csdn.net/vblittleboy/article/details/21012991
http://blog.csdn.net/roserose0002/article/details/38397537
  仔細看了s3c2440_nand.c文件名也沒寫錯。
在這裏插入圖片描述
在這裏插入圖片描述
  接着我重新複製windows下的文件的名字到makefile下,更改.o依賴的名字發現是多了一個空格
在這裏插入圖片描述
  第一次修改時,沒注意到這個空格,所以我就刪去了。今天才發現這裏有問題,接着刪去windows下的文件和ubuntu下makefile的空格符號,編譯就通過了。
在這裏插入圖片描述
  太大意了。這個錯誤困擾了兩天。第一天仔細檢查了代碼,google找資料,沒有解決。今天再拿出來看,才發現這個錯誤。有時候錯誤並不能一眼看出來。換個時間,再回來看或許有不一樣的結果!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章