Я використовував 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просто