मैं " एडवांस्ड लिनक्स प्रोग्रामिंग (2001)" [कोड] पुस्तक से मेकफाइल का उपयोग कर रहा था । मेरे लिए यह देखना अजीब था कि जीएनयू मेक इन कंपाइलर को निर्दिष्ट किए बिना भी कोड को सही ढंग से संकलित करता है। यह बिना किसी रेसिपी के बेकिंग जैसा है!
यह कोड का एक न्यूनतम संस्करण है:
test.c
int main(){}
makefile
all: test
और वास्तव में काम करता है! यह वह कमांड है जिसे यह निष्पादित करता है:
cc test.c -o test
मुझे प्रलेखन में कुछ भी उपयोगी नहीं मिला। यह कैसे संभव है?
पुनश्च एक अतिरिक्त नोट: यहां तक कि भाषा भी निर्दिष्ट नहीं है; क्योंकि test.c
उपलब्ध है, GNU make
का उपयोग करता है cc
। यदि मौजूद है test.cpp
या test.cc
(जब कोई नहीं है test.c
), यह उपयोग करता है g++
(और नहीं c++
)।
make
आपके फ्रिज की जांच करता है और पता चलता है कि कुछ आटा उपलब्ध है, तो अपने आंतरिक नुस्खा से आपके लिए एक डिफ़ॉल्ट केक बनाता है। :-)
make
पानी को उबालने और अपने आंतरिक नियमों का उपयोग करने के लिए कह रहा है,make
बस यह कैसे पता चलेगा?)