मेकफ़ाइल एक फ़ाइल है जिसका उपयोग प्रोग्रामों के संकलन को स्वचालित करने के लिए मेक टूल द्वारा किया जाता है। प्रभावी मेकफ़ाइल लिखने के लिए मानक नियम और सर्वोत्तम अभ्यास यहां दिए गए हैं:
target: prerequisites command
डिफ़ॉल्ट नियम: मेकफ़ाइल में पहला लक्ष्य वह है जो डिफ़ॉल्ट रूप से बनाया जाएगा।
स्रोत फ़ाइलों का संकलन:
CC = gcc CFLAGS = -Wall -g SOURCES = main.c utils.c OBJECTS = $(SOURCES:.c=.o) TARGET = mon_programme $(TARGET): $(OBJECTS) $(CC) -o $@ $^ %.o: %.c $(CC) $(CFLAGS) -c $
- फ़ोनीज़: उन लक्ष्यों के लिए .PHONY का उपयोग करता है जो फ़ाइलें नहीं हैं।
.PHONY: clean clean: rm -f $(OBJECTS) $(TARGET)
- वेरिएबल्स: पथों और विकल्पों के प्रबंधन को सरल बनाने के लिए वेरिएबल्स का उपयोग करता है।
CC = gcc CFLAGS = -Wall
निर्भरता प्रबंधन: पुनरावृत्ति को कम करने के लिए अंतर्निहित नियमों और पैटर्न का उपयोग करता है।
स्वचालित निर्भरता: आप .o फ़ाइलों के लिए स्वचालित रूप से निर्भरता उत्पन्न कर सकते हैं।
-include $(OBJECTS:.o=.d)पूर्ण उदाहरण
यहां एक संपूर्ण मेकफ़ाइल उदाहरण दिया गया है:
# Variables CC = gcc CFLAGS = -Wall -g SOURCES = main.c utils.c OBJECTS = $(SOURCES:.c=.o) TARGET = mon_programme # Règle par défaut all: $(TARGET) # Lien de l'exécutable # $@ -> $(TARGET) # $^ -> $(OBJECTS) $(TARGET): $(OBJECTS) $(CC) -o $@ $^ # Compilation des fichiers .c en .o # $ Premier element des pr %.o: %.c $(CC) $(CFLAGS) -c $अच्छे आचरण
टैब के साथ इंडेंट: नियमों में कमांड को टैब के साथ इंडेंट किया जाना चाहिए, रिक्त स्थान के साथ नहीं।
टिप्पणी कोड: मेकफ़ाइल के अनुभागों को समझाने के लिए टिप्पणियों का उपयोग करता है।
समूह फ़ाइलें: यदि आपके प्रोजेक्ट में एकाधिक फ़ाइलें हैं, तो उन्हें उपनिर्देशिकाओं में व्यवस्थित करें और पथ प्रबंधित करने के लिए चर का उपयोग करें।
अंतर्निहित नियमों का उपयोग करें: सामान्य नियमों को दोबारा लिखने से बचने के लिए मेक के अंतर्निहित नियमों का लाभ उठाएं।
.PHONY का उपयोग क्यों करें?
विरोधों से बचें: यदि लक्ष्य के समान नाम वाली कोई फ़ाइल मौजूद है, तो मेक यह सोचेगा कि लक्ष्य अद्यतित है और संबंधित आदेशों को निष्पादित नहीं करेगा। .PHONY इससे बचता है।
प्रदर्शन में सुधार: नकली लक्ष्यों को हमेशा "करना" माना जाता है, जिससे संबंधित आदेशों के निष्पादन की गति में सुधार हो सकता है।
दक्षता: %o:%c का उपयोग करने से आपको केवल वही पुनः संकलित करने के लिए अनुकूलन करने से लाभ मिलता है जो आवश्यक है।
व्यावहारिक: बड़ी परियोजनाओं के लिए, %c अधिक उपयुक्त है।
एक अच्छी तरह से संरचित मेकफ़ाइल परियोजना प्रबंधन को आसान बनाती है और संकलन त्रुटियों से बचाती है। इन नियमों और सर्वोत्तम प्रथाओं का पालन करके, आप एक कुशल और रखरखाव योग्य मेकफ़ाइल बना सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3