我需要帮助编写一个生成文件,该文件创建两个独立的可执行文件,这些可执行文件依赖于一个公共文件。所以,我有三个源文件:Master.c Common.c Worker.c,以及三个对应的头文件。现在,Master.c 包括 Master.h 和 Common.h。同样,Worker.c 包括 Worker.h 和 Common.h。我想使用相同的 makefile 创建两个可执行文件,即 Master 和 Worker。我有以下 makefile,但它无法正常运行,因为对于 Common.h 中声明的每个全局变量,当我键入make时,我会收到错误“Multiple declarations”。请注意,我在所有头文件中都使用了#indef、#define 和#endif。
CC = gcc
CFLAGS= -g -I -pthread -lpthread -std=c99
DEPS = Common.h
OBJ1 = Master.o Common.o
OBJ2 = Worker.o Common.o
%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)
all: Master Worker
Master: $(OBJ1)
gcc -o $@ $^ $(CFLAGS)
Worker: $(OBJ2)
gcc -o $@ $^ $(CFLAGS)
clean:
rm -f *.o
你能帮忙吗