'干净'不起作用

时间:2017-12-10 03:03:19

标签: makefile mingw msys

所以我为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

但无论我尝试什么,它仍然给了我同样的错误。我真的可以使用这个帮助。提前致谢。

2 个答案:

答案 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写了