Я використовував Makefile з книги " Розширене програмування Linux (2001)" [код] . Мені було дивно бачити, що GNU make компілює код правильно, навіть не вказуючи компілятор у Makefile. Це як випічка без жодного рецепта!
Це мінімальна версія коду:
тест.c
int main(){}
Makefilefile
all: test
і змусити насправді працювати! Це команда, яку вона виконує:
cc test.c -o test
Я не зміг знайти нічого корисного в документації. Як це можливо?
PS Одна додаткова примітка: Навіть мова не вказана; Оскільки test.c
доступний, GNU make
використовує cc
. Якщо існує test.cpp
або test.cc
(коли його немає test.c
), він використовує g++
(а ні c++
).
make
перевіряє ваш холодильник і виявляє, що є трохи борошна, а потім випікає торт за замовчуванням для вас зі свого внутрішнього рецепта. :-)
make
кип'ятити воду і, використовуючи її внутрішні правила,make
просто