Я использовал 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просто