所以我为c程序制作了一个makefile。出于某种原因,我的'干净'不起作用。这是我的makefile的一小部分:
CC=gcc
FLAGS=-c -Wall -I.
CLEANC=rm -rf *.o
move.o: move.c
$(CC) $(FLAGS) move.c
/*Lot more codes like this^^^*/
clean:
$(CLEANC)
当我在命令提示符下运行'make clean'时,我会看到以下内容:
rm -rf *.o
process_begin: CreateProcess(NULL, rm -rf *.o, ...) failed.
make (e=2): The system cannot find the file specified.
makefile:116: recipe for target 'clean' failed
make: *** [clean] Error 2
我无法弄清楚我做错了什么。我已经尝试将CLEANC更改为
rm -f *.o
rm *.o
rm *o
rm -f *.o test.exe //test.exe is executable
但无论我尝试什么,它仍然给了我同样的错误。我真的可以使用这个帮助。提前致谢。
答案 0 :(得分:2)
从错误输出中出现的CreateProcess
判断,我假设您在Windows下运行make
。
这意味着没有rm
命令,您应该使用del
代替,-rf
标志也应相应调整。
答案 1 :(得分:0)
OBJS = $(addprefix $(OBJ_DIR)/,$(patsubst %.c,%.o,$(notdir $(SRCS))))
DELOBJS = $(addprefix .\obj\,$(patsubst %.c,%.o,$(notdir $(SRCS))))
.PHONY: clean
clean:
del xxx
del $(DELOBJS)
del
不起作用,因为 Windows 使用 \
来区分文件路径,所以你必须把 OBJS
和 \path
,即 DELOBJS
I写了