我必须为一个有几个文件夹的程序编写一个“好的”makefile:bin、inc、obj、src。这是我的制作文件。如果我键入 make 它只是说尽管程序根本没有编译,但什么也做不了。猜猜我在某个地方有错误,但我真的找不到。(ps我是新手)。非常感谢你的帮助!
bin文件夹中的makefile:
vpath %.o ../obj/
$(prog): $(objs)
$(cc) $(ccflags) -o $@ $^ $(ldflags)
obj文件夹中的makefile:
vpath %.c ../src
vpath %.h ../inc
all: $(objs)
%.o: %.c %.h
$(cc) $(ccflags) -c $<
-include *.d
通用makefile:
export prog := inv_svn
export objs := $(patsubst %.c, %.o, $(wildcard src/*.c)))
export src_dir := src
export inc_dir := inc
export obj_dir := obj
export bin_dir := bin
export cc := gcc
export ccflags := -I $(PWD)/$(inc_dir) -MMD -g -Wall
export ldflags := -lcurses -lgdbm
test := ./$(prog)
all: $(prog)
$(prog): $(bin_dir)
$(bin_dir): $(obj_dir)
$(bin_dir):
make -C $@
$(obj_dir):
make -C $@
.PHONY: clean
clean:
rm -f $(obj_dir)/*.[od]$(prog)