尝试编译时,我的一个文件出现“未定义的 main 引用”错误。我知道这是因为这个文件没有 main 方法。这只是一些辅助方法的实现文件,所以我只希望它编译为目标文件而不是可执行文件。如果我明确地告诉 makefile 对每个文件做什么,我知道该怎么做,但是我正在尝试编写一个 makefile 来一次编译我的所有源代码。我尝试使用该-c
标志,但随后它将我的所有文件编译为仅目标文件而不是可执行文件。我到底是怎么做到的?这里是:
CC = gcc
CFLAGS = -g -Wall
SRCS = ./src/server.c ./src/client_slave.c ./src/sockaddrAL.c
EXECS = ./bin/server ./bin/client_slave
OBJS = $(SRCS:.c=.o)
all: clean $(SRCS) server client
server: $(OBJS)
$(CC) $(CFLAGS) ./src/server.o -o ./bin/server
client: $(OBJS)
$(CC) $(CFLAGS) ./src/client_slave.o -o ./bin/client_slave
.c.o:
$(CC) $(CFLAGS) -c $< -o $@
clean:
@rm -f $(EXECS) $(OBJS)