Saya menggunakan Makefile dari buku " Advanced Linux Programming (2001)" [kode] . Aneh bagi saya untuk melihat bahwa make GNU mengkompilasi kode dengan benar, bahkan tanpa menentukan kompiler di Makefile. Ini seperti memanggang tanpa resep apa pun!
Ini adalah versi minimal dari kode:
test.c
int main(){}
Makefile
all: test
dan membuatnya benar-benar bekerja! Ini adalah perintah yang dijalankannya:
cc test.c -o test
Saya tidak dapat menemukan sesuatu yang berguna dalam dokumentasi. Bagaimana ini mungkin?
PS Satu catatan tambahan: Bahkan bahasa tidak ditentukan; Karena test.c
tersedia, GNU make
menggunakan cc
. Jika ada test.cpp
atau test.cc
(ketika tidak ada test.c
), ia menggunakan g++
(dan tidak c++
).
make
memeriksa lemari es Anda dan menemukan ada beberapa tepung yang tersedia, kemudian membuat kue default untuk Anda dari resep internalnya. :-)
make
merebus air, dan menggunakan aturan internalnya,make
hanya akan mengetahui caranya;)