Я использовал Makefile из книги " Advanced Linux Programming (2001)" [code] . Мне было странно видеть, что GNU make правильно компилирует код, даже не указав компилятор в Makefile. Это как выпечка без рецепта!
Это минимальная версия кода:
test.c
int main(){}
Makefile
all: test
и сделать действительно работает! Это команда, которую он выполняет:
cc test.c -o test
Я не смог найти ничего полезного в документации. Как это возможно?
PS Еще одно примечание: даже язык не указан; Потому test.c
что доступно, GNU make
использует cc
. Если существует test.cpp
или test.cc
(когда нет test.c
), он использует g++
(а не c++
).
make
проверяет ваш холодильник и узнает, что есть немного муки, а затем выпекает для вас торт по умолчанию из своего внутреннего рецепта. :-)
make
кипятить воду, и, используя свои внутренние правила,make
просто