c语言 - 服务器/客户端程序的生成文件:"Multiple definitions of main"



我当前正在编写我的第一个服务器/客户端程序。两者都将包含一个主要功能,并且该程序是从两个终端中作为类似聊天的系统工作。但是,当我编译时,我会收到错误" Main'的多重定义"。这是我的makefile的问题吗?如下所示:

CC=gcc
CFLAGS=-c -Wall
LDFLAGS=-lrt -lm
SOURCES=ser.c cli.c
OBJECTS=$(SOURCES:.c=.o)
EXECUTABLE=s-talk
all: $(SOURCES) $(EXECUTABLE)
    ./$(EXECUTABLE)
.c.o:
    $(CC) $(CFLAGS) $< -o $@
$(EXECUTABLE): $(OBJECTS) 
    $(CC) -pthread $(OBJECTS) $(LDFLAGS) -o $@
clean: 
    -rm -f *.o

其他简单试验:

all: client server
client:
    gcc -pthread -o client cli.c
server:
    gcc -pthread -o server ser.c
clean: 
    -rm -f *.o

"全部无需完成"

您可以创建一个主线程,该主线程将实现main()函数,并从主线程为客户端和服务器创建两个单独的线程。由于目标可执行文件中您不会具有两个main()函数,因此链接器不会说" MAIN'"错误的"多重定义"。

相关内容

最新更新