OwnResponsibility 2022-01-20 09:27 采纳率: 25%
浏览 30

在linux makefile中 其他规则不执行 直接执行clean 这是为什么?

问题遇到的现象和发生背景

在编写makefile文件中 中建的规则并未执行,直接执行最后一行clean这是为什么

问题相关代码,请勿粘贴截图

文件存放
hjc@hjc-Master:~/myCode/maketest/homework$ tree ./
./
├── inc
│ └── headfile.h
├── makefile
├── obj
└── src
├── add.c
├── add.o
├── div1
├── div1.c
├── div1.o
├── makefile
├── mul.c
└── sub.c

makefile 内容

src=$(wildcard ./src/*.c)
obj=$(patsubst ./src/%.c, ./obj/%.o, $(src))
nc_path=./inc
myArgs= -Wall -g
#ALL:*.out
%.out:./obj/%.o
    gcc $< -o $@

./obj/%.o:/src/%.c
    gcc -I $(inc_path) -c $< -o $@ $(myArgs)
clean: 
    -rm -rf $(obj) *.out
.PHONY: clean ALL

代码命令处有且仅有一个tab

运行结果及报错内容

执行结果:
hjc@hjc-Master:~/myCode/maketest/homework$ make
rm -rf ./obj/add.o ./obj/div1.o ./obj/mul.o ./obj/sub.o *.out

我的解答思路和尝试过的方法
我想要达到的结果

正常执行makefile

  • 写回答

1条回答 默认 最新

  • _GX_ 2022-01-20 09:44
    关注

    加上

    ALL: add.out div1.out mul.out sub.out
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 1月20日