makefile中定义了.PHONY:clean clean: rm -f *.o math 但是不能正常使用:make
但是在执行make后,就会自动停止。说在“clean:”这行中,没有停止符。但是在其它源代码工程中就能使用这个“clean:”如busybox的源代码中能使用。但是自己编...
但是在执行make后, 就会自动停止。说在“clean:”这行中,没有停止符。
但是在其它源代码工程中就能使用这个“clean:”如busybox的源代码中能使用。
但是自己编写的makefile中却不能使用这个make clean的选项,因为只要我加上这个“.PHONY:clean
clean:
rm -f *.o math”
就会不能执行make命令进行编译。
求一个解释方法。
下面是我的makefile的全部:
math : heart.o test.o main.o
cc -o math heart.o test.o math.o
main.o : main.c stdio.h
cc -o math.o -c math.c
test.o : test.a.c stdio.h
cc -o test.o -c test.a.c
heart.o : heart.c stdio.h
cc -o heart.o -c heart.c
.PHONY: clean
clean:
rm -f math *.o 展开
但是在其它源代码工程中就能使用这个“clean:”如busybox的源代码中能使用。
但是自己编写的makefile中却不能使用这个make clean的选项,因为只要我加上这个“.PHONY:clean
clean:
rm -f *.o math”
就会不能执行make命令进行编译。
求一个解释方法。
下面是我的makefile的全部:
math : heart.o test.o main.o
cc -o math heart.o test.o math.o
main.o : main.c stdio.h
cc -o math.o -c math.c
test.o : test.a.c stdio.h
cc -o test.o -c test.a.c
heart.o : heart.c stdio.h
cc -o heart.o -c heart.c
.PHONY: clean
clean:
rm -f math *.o 展开
3个回答
展开全部
你这个*.o不行吧,可以给一个变量例如objects赋值
objects=heart.o test.o main.o
后面用rm -f math $(objects)试试
objects=heart.o test.o main.o
后面用rm -f math $(objects)试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
rm -f math *.o
追问
我的问题是,当加入这个:
.PHONY :clean
clean:
rm -f math *.o
之后,就不能使用make了。直接报错。
不能编译下去。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的cc前面加tab了没?因该不可能啊
追问
这个不是CC的问题是:
.PHONY:clean
clean:
rm -f math *.o
这部分有问题,当编译到这里的时间就不能再下去了。
就是说,不能通过检查。
关系如下:
math : heart.o test.o main.o;cc -o math heart.o test.o math.o
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询