Как писать makefile?

Блин стремно в этом сознаваться но все содержимое этого файла для меня как китайские иероглифы! Объясните пожалуйста! Я понимаю что исполняемый файл собирается из нескольких объектных файлов(или одного) а эти объектные файлы компилируются из исходников с подключаемыми заголовочными файлами! Как бы Вы написали в makefile если бы у Вас имелось 0.c 1.c 2.c 3.h? Заголовочник 3.h для всех исходников
  • Вопрос задан
  • 508 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Как бы Вы написали в makefile если бы у Вас имелось 0.c 1.c 2.c 3.h? Заголовочник 3.h для всех исходников


OBJS := 0.o 1.o 2.o                     # список объектников, который нам понадобится в двух местах
all: exe                                # традиционно сборка всего называется all. all зависит от единственного файла: exe
exe: $(OBJS)                            # файл exe зависит от объектникоа
        $(CC) $(LDFLAGS) -o $@ $^       # чтобы собрать exe -- вызвать компилятор, передать ему LDFLAGS, выводить в $@ (т.е. в exe), на вход брать $^ (т.е. всё от чего зависит $@)
%.o: %.c 3.h                            # объектники зависят от исходников с таким же именем, а так же от 3.h
        $(CC) -c $(CFLAGS) -o $@ $<     # чтобы собрать объектник -- вызвать компилятор с ключом -c, передать ему CFLAGS, выводить в $@ (т.е. в %.o), компилировать $< (т.е. %.с с тем же именем)
clean:                                  # традиционно очистка всего называется clean
        -rm -f $(OBJS) exe              # для очистки удалить объектники и exe
.PHONY: all clean                       # all и clean -- это не файлы
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы