问题
I'm trying to compile Atmel's Bitcloud (WSNDemo) on Ubuntu 14.04.
The makefile (http://pastebin.com/4gGcGRvY) however seems not executing a rule on my computer.
The problem is that it doesn't start the compiler only the linker. And of course the linker then can't find the objects.
$(OBJ_PATH)/%.o: $(SRCS)
is never called (line 187 in makefile) upon running this:
make -n -f Makefile_All_StdlinkSec_MegaRf_Atmega2564rfr2_16Mhz_Gcc all APP_NAME=WSNDemo
However if I specify the object and also the source by hand (in line 192), then it runs fine:
$(OBJ_PATH)/ofdIntFlashRead.o: ../../../../BitCloud/Components/HAL/drivers/OFD/src/ofdIntFlashRead.s
Note: all source files are in the right place.
So I don't understand why the pattern matching is not working.
回答1:
Sorry for misleading you guys.
The mistake was in the Makefile. It came from Windows and the author unintentionally changed a filename to lowercase, and then the makefile couldn't find it on Linux (but it was okay on Windows).
Thank you for your time though.
来源:https://stackoverflow.com/questions/29723554/makefile-rule-is-not-executing