这个makefile是否会删除.c文件?

时间:2010-12-06 14:12:23

标签: c makefile

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

3 个答案:

答案 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?

最简单的方法是使用内置规则。如果您在任何规则的先决条件中添加clientclient.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