Этот make-файл устраняет файл .c? - PullRequest
0 голосов
/ 06 декабря 2010
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?

б) Как я могу изменить make-файл, чтобы он также компилировал client.c программу и создавал client.o?

Ответы [ 3 ]

2 голосов
/ 06 декабря 2010

Весь ваш make-файл должен выглядеть так:

LDLIBS=-lpthread
servidor: servidor.o client.o
clean:
<TAB>rm -f *.o
0 голосов
/ 06 декабря 2010

make-файл кажется таким странным, я не иск, может ли он работать или нет? но я думаю, что лучше так:

    all: client
client: client.o
    gcc -lpthread -o client.o
client.o:
    gcc -c client.c
clean: 
    rm -rf client.o
0 голосов
/ 06 декабря 2010

a) Чистая ли строка исключает файл servidor.c?

Нет.Строка

gcc -c servidor.c

- это всего лишь слабый способ гарантировать, что servidor.o существует, и последующий rm не дает сбоя.Это должно быть

clean:
    -rm -rf servidor.o

b) Как я могу изменить make-файл, чтобы он также компилировал программу client.c и создавал client.o?

Самый простой способ - использовать встроенные правила.Если вы добавите client или client.o в любое из обязательных условий правила, оно будет автоматически построено из client.c.

(и добавьте -lpthread к LDLIBS, если вам это нужно для client.c)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...