2014-11-17 2 views
0

Я пишу (в первый раз) в Makefile для моей программы в C. Это мой макияж файл:написание Makefile в C

CC = gcc 
FILES = in_one.c in_two.c in_two.h 
OUT_EXE = out_executable 
build: $(FILES) 
    $(CC) -o $(OUT_EXE) $(FILES) 
clean: 
    rm -f *.o core 
rebuild: clean build 

На самом деле, все работает правильно: Gcc компилятор не показывает никаких ошибок , но, возможно, кто-то может объяснить, что делает эти линии означают:

clean: 
    rm -f *.o core 
rebuild: clean build 
+2

Вы понимаете, что означает 'build: $ (FILES)' означает? – Arkadiy

ответ

0

Вы гт (удаление) или удаление всех (*) существующий .o файлов. Поэтому в следующий раз, когда вы скомпилируете или вызовите файл make, вы просто останетесь с новыми.

Телосложение: $ (Файлы) является создание .o поэтому компилятор не может связать их вместе в исполняемый

+0

Удаляет все основные (core dump) файлы. – jolati

1

В clean линии говорят, что если вы хотите сделать clean это не зависит ни от чего (ничего позади " : "). Кроме того, команда rm удаляет все объектные файлы.

rebuild: clean build говорит, что если вы хотите сделать rebuild, это зависит от clean и build. Итак, первое, что нужно сделать, это clean (= удалить все объектные файлы), а затем сделать build (= скомпилировать все исходные файлы). После этого больше нечего делать, останавливаясь.

Для быстрого запуска, делают рецепты имеют следующий синтаксис:

target: dependency1 dependency2 ... dependencyN 
    command1 
    command2 
    ... 
    command3 

Так что если target должны быть сделаны сначала все зависимости (dependency1 - dependencyN) сделана. После этого command1 - commandN выполнены в таком порядке.

Смежные вопросы