Объяснение того, как работает этот makefile?

Я нашел make-файл здесь, когда читал об Auto-Tools.

Я никогда не использовал подобный make-файл, я пробовал это сам.
Содержимое make-файла, которое я написал, таково:

all: HelloWorld

clean:
    rm -f HelloWorld *.o

Папка с make-файлом содержит еще один файл HelloWorld.c.

Запуск make был успешным со следующим выводом:

$> make
cc     HelloWorld.c   -o HelloWorld

Теперь я попробовал поэкспериментировать и в make-файле переименовал цель для all в HelloWorl. На этот раз make не удалось со следующей ошибкой:

$> make
make: *** No rule to make target `HelloWorl', needed by `all'.  Stop.

Пожалуйста, объясните такое поведение make при автоматическом поиске и компиляции исходного кода.

Насколько я понимаю, он делает исходное имя из целевого имени, добавляя .c и компилирует его с использованием компилятора по умолчанию cc.


person Don't You Worry Child    schedule 13.11.2013    source источник


Ответы (1)


Ваше понимание в основном правильное; это одно из неявных правил. Однако make на самом деле компилирует файл с помощью компилятора в CC variable< /а>.

person Ramchandra Apte    schedule 13.11.2013