我收到错误打开依赖项文件。 (如下所示)我从sparkfun这里下载了所有代码https://www.sparkfun.com/tutorials/94,它应该是编译的。你认为这个错误是由Windows 10引起的吗?
Compiling C (ARM-only): ../lib/irq.c
arm-elf-gcc -c -mcpu=arm7tdmi-s -mthumb-interwork -I. -gdwarf-2 -DROM_RUN -D__WinARM__ -I ../lib/ -Os -Wall -Wcast-align -Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wshadow -Wunused -Wa,-adhlns=../lib/irq.lst -I../lib -I../screens -I../LPCUSB -Wcast-qual -MD -MP -MF .dep/irq.o.d -Wnested-externs -Wimplicit -std=gnu99 -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations ../lib/irq.c -o ../lib/irq.o
../lib/irq.c:156: fatal error: opening dependency file .dep/irq.o.d: No such file or directory
compilation terminated.
make.exe: *** [../lib/irq.o] Error 1
答案 0 :(得分:0)
在Makefile中,这是失败的行:
-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
我不确定为什么它会失败,因为它有领先的" - "如果文件不存在,应告诉它不要失败。
在irq.c的第一次编译之后,irq.o.d存在,并且包含irq.c的头文件依赖项,以便后续更改头文件将导致重新编译irq.c。这种魔法的发生是因为传递给编译器的GENDEPFLAGS(-MD等)。
如果' - '在你的make中没有工作,你可以用#作为初始编译注释掉include行,然后取消注释该行。或者你可以把它注释掉并使其干净;每次更改头文件时都会生成。