我正在尝试为项目生成一个简单的makefile,但是遇到了麻烦,因为我仍然习惯了它们。
我有一个文件夹,其中包含3个单独的文件,标题文件LinkedListAPI.h
,LinkedListAPI.c
和StructListDemo.c
。
必须使用标志:
-Wall -std=c11
答案 0 :(得分:1)
这个看起来不错,但请记住用Tabs替换所有缩进:
.PHONY: all clean
CFLAGS:=$(CFLAGS) -std=c11 -Wall
OBJ=./src
INCLUDE=./include
objStringListDemo=$(OBJ)/LinkedListAPI.o $(OBJ)/StringListDemo.o
objStructListDemo=$(OBJ)/LinkedListAPI.o $(OBJ)/StructListDemo.o
all: StringListDemo StructListDemo
StringListDemo: $(objStringListDemo) $(INCLUDE)/LinkedListAPI.h
${CC} -o $< $@
StructListDemo: $(objStructListDemo) $(INCLUDE)/LinkedListAPI.h
${CC} -o $< $@
%.o: %.c
${CC} $(CFLAGS) $< -o $@
clean:
rm -rf $(objStringListDemo) $(objStructListDemo) StringListDemo StructListDemo