makefile错误

图片描述

将目录下所有.c文件编译成.o文件.
执行makefile提示错误: make: * 无目标。 停止。

阅读 2k
2 个回答

只是生成目标文件的话,不需要-o

*.o: *.c
    gcc -c $^

上面代码错误

src=$(wildcard *.c)
obj=$(patsubst %.c,%.o,$(src))
$obj: $(src)
    gcc -c $(src)

然后就make

把目录下的c文件编译成对应的目标文件

sources = $(wildcard *.c)
objects = $(patsubst %.c,%.o,$(sources))
$(objects) : %.o : %.c
    gcc -c $<
    
all: $(objects)

建议看下makefile的静态模式规则