all: servidor
servidor: servidor.o
gcc -lpthread -o servidor.o
servidor.o:
clean:
gcc -c servidor.c
rm -rf servidor.o
问题:
a)clean:
行是否删除了servidor.c
文件?
b)如何修改makefile以便它还编译client.c
程序并创建client.o
?
答案 0 :(得分:2)
您的整个makefile应如下所示:
LDLIBS=-lpthread
servidor: servidor.o client.o
clean:
<TAB>rm -f *.o
答案 1 :(得分:0)
a)清洁:行消除了 servidor.c文件?
没有。这条线
gcc -c servidor.c
只是确保servidor.o
存在的一种蹩脚方式,后续rm
不会失败。它应该是
clean:
-rm -rf servidor.o
b)如何修改makefile以便它还编译client.c程序并创建client.o?
最简单的方法是使用内置规则。如果您在任何规则的先决条件中添加client
或client.o
,则系统会自client.c
自动构建它。
(如果您需要-lpthread
,请LDLIBS
添加client.c
答案 2 :(得分:0)
makefile看起来很奇怪,我不会起诉它是否可以工作?但我认为它更好,如下:
all: client
client: client.o
gcc -lpthread -o client.o
client.o:
gcc -c client.c
clean:
rm -rf client.o