开发者

Is this makefile eliminating the .c file?

all: servidor
servidor: servidor.o
    gcc -lpthread -o servidor.o
servidor.o:
clean:
    gcc -c servidor.c
    rm -rf servidor.o

Questions:

a)Is the clean: line eliminating the servidor.c fil开发者_StackOverflow社区e?

b)How can I modify the makefile so that it also compiles a client.c program and creates a client.o?


Your entire makefile should look like this:

LDLIBS=-lpthread
servidor: servidor.o client.o
clean:
<TAB>rm -f *.o


a)Is the clean: line eliminating the servidor.c file?

No. The line

gcc -c servidor.c

is just a lame way of ensuring servidor.o exists, and the subsequent rm does not fail. It should rather be

clean:
    -rm -rf servidor.o

b)How can I modify the makefile so that it also compiles a client.c program and creates a client.o?

The easiest way is use built-in rules. If you add client, or client.o in any of a rule's prerequisites, it will be built automatically from client.c.

(and add -lpthread to LDLIBS if you need it for client.c)


the makefile seems so strange,i am not sue whether it can work or not? but i think it better as following:

    all: client
client: client.o
    gcc -lpthread -o client.o
client.o:
    gcc -c client.c
clean: 
    rm -rf client.o
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜