xirurensheng_123 2016-08-04 13:56 采纳率: 0%
浏览 1747
已采纳

关于Makefile编译时死循环问题

2 ifneq ($(EXE),"")
33 all:$(EXE)
34 endif
35
36 ifneq ($(LIBS),"")
37 all:$(LIBS)
38 endif
39
40 ifneq ($(MAKECMDGOALS),clean)
41 -include $(DEPS)
42 endif-
43 $(DIRS):
44 | $(MKDIR) $@
45
46 $(EXE):$(DIR_EXES) $(OBJS)
47 | $(CC) $(filter %.o, $^) -o $@
48 $(LIBS):$(DIR_LIBS) $(OBJS)
49 | $(AR) $(ARFLAGS) $@ $(filter %.o,$^)-
50 $(DIR_OBJS)/%.o:$(DIR_OBJS) %.c
51 | $(CC) -c $(filter %.c, $^) -o $@
52 $(DIR_DEPS)/%.d:$(DIR_DEPS) %.c
53 | @set -e;\
54 | echo "Making $@...";\
55 | $(RM) $(RMFLAGS) $@;\
56 | $(CC) -E -MM $(filter %.c, $^) > $@.tmp;\
57 | sed 's,(.*).o[ :],objs/\1.o $@ :,g' < $@.tmp > $@;\
58 | $(RM) $(RMFLAGS) $@.tmp;-
为什么进行头文件依赖的时候如果不在58行后边添加mv $@ $@的话其会一直循环执行 如果其模式匹配直接为%.d:%.c的话其执行没有问题

[root@localhost src]# make
mkdir deps
Making deps/foo.d...
Making deps/foo.d...
Making deps/foo.d...
Making deps/foo.d...
这位其执行结果

  • 写回答

1条回答

  • devmiao 2016-08-04 16:34
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器