2016-12-24 54 views
0

我想在我的项目中使用“Makefile”,它使用套接字编程。我有两个简单的.c文件,但他们有自己的主要功能。由于这两个主要功能,makefile会返回一个错误。具有相同功能的C中的Makefile错误

我有server.c文件中的一个主要功能和client.c一个主要功能

ERROR

gcc server.o client.o -o output -lpthread client.o: In function main': client.c:(.text+0x0): main' için birden fazla tanım server.o:server.c:(.text+0x78): ilk burada tanımlanmış collect2: error: ld returned 1 exit status Makefile:4: recipe for target 'output' failed make: *** [output] Error 1

MAKEFILE

all: output 

output: server.o client.o 
    gcc server.o client.o -o output -lpthread 

server.o: server.c 
    gcc -c server.c 

client.o: client.c 
    gcc -c client.c 

clean: 
    rm *.o 

谢谢:)

回答

1

它将不会像那样工作。你需要两个输出,ala

all: server client 

server: server.o 
    gcc server.o -o server -lpthread 

client: client.o 
    gcc client.o -o client -lpthread 

这是因为你的程序只能有一个main。你想要做什么,你想要将两个.c文件编译成一个可执行文件?

+0

它不工作,对不起。错误是缺少分隔符? – Berkin

+2

以'gcc'开头的行应该以制表符开始,而不是空格。我猜你可能已经结束了空间。 :) – negacao

+0

非常感谢。是的,我忘了将它们从空间改为标签。问题解决了 – Berkin

相关问题