"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मेकफ़ाइल को समझना (सी भाषा के साथ उदाहरण)।

मेकफ़ाइल को समझना (सी भाषा के साथ उदाहरण)।

2024-07-31 को प्रकाशित
ब्राउज़ करें:967

Comprendre le Makefile (Exemple avec langage C).

मेकफ़ाइल एक फ़ाइल है जिसका उपयोग प्रोग्रामों के संकलन को स्वचालित करने के लिए मेक टूल द्वारा किया जाता है। प्रभावी मेकफ़ाइल लिखने के लिए मानक नियम और सर्वोत्तम अभ्यास यहां दिए गए हैं:

मेकफ़ाइल की मूल संरचना

  1. लक्ष्य: आप क्या बनाना चाहते हैं (उदाहरण के लिए एक निष्पादन योग्य फ़ाइल)।
  2. आवश्यकताएँ: लक्ष्य बनाने के लिए आवश्यक फ़ाइलें (जैसे स्रोत फ़ाइलें)।
  3. नियम: लक्ष्य बनाने के लिए निष्पादित करने का आदेश।

सरल उदाहरण

target: prerequisites
    command

मानक नियम

  1. डिफ़ॉल्ट नियम: मेकफ़ाइल में पहला लक्ष्य वह है जो डिफ़ॉल्ट रूप से बनाया जाएगा।

  2. स्रोत फ़ाइलों का संकलन:

    • कंपाइलर्स और विकल्पों के लिए वेरिएबल का उपयोग करें।
    • उदाहरण :
   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 $



  1. फ़ोनीज़: उन लक्ष्यों के लिए .PHONY का उपयोग करता है जो फ़ाइलें नहीं हैं।
   .PHONY: clean
   clean:
       rm -f $(OBJECTS) $(TARGET)
  1. वेरिएबल्स: पथों और विकल्पों के प्रबंधन को सरल बनाने के लिए वेरिएबल्स का उपयोग करता है।
   CC = gcc
   CFLAGS = -Wall
  1. निर्भरता प्रबंधन: पुनरावृत्ति को कम करने के लिए अंतर्निहित नियमों और पैटर्न का उपयोग करता है।

  2. स्वचालित निर्भरता: आप .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 $



अच्छे आचरण

  1. टैब के साथ इंडेंट: नियमों में कमांड को टैब के साथ इंडेंट किया जाना चाहिए, रिक्त स्थान के साथ नहीं।

  2. टिप्पणी कोड: मेकफ़ाइल के अनुभागों को समझाने के लिए टिप्पणियों का उपयोग करता है।

  3. समूह फ़ाइलें: यदि आपके प्रोजेक्ट में एकाधिक फ़ाइलें हैं, तो उन्हें उपनिर्देशिकाओं में व्यवस्थित करें और पथ प्रबंधित करने के लिए चर का उपयोग करें।

  4. अंतर्निहित नियमों का उपयोग करें: सामान्य नियमों को दोबारा लिखने से बचने के लिए मेक के अंतर्निहित नियमों का लाभ उठाएं।

.PHONY का उपयोग क्यों करें?

  • विरोधों से बचें: यदि लक्ष्य के समान नाम वाली कोई फ़ाइल मौजूद है, तो मेक यह सोचेगा कि लक्ष्य अद्यतित है और संबंधित आदेशों को निष्पादित नहीं करेगा। .PHONY इससे बचता है।

  • प्रदर्शन में सुधार: नकली लक्ष्यों को हमेशा "करना" माना जाता है, जिससे संबंधित आदेशों के निष्पादन की गति में सुधार हो सकता है।

संकलन के लिए %o:%c का उपयोग क्यों करें?

  • दक्षता: %o:%c का उपयोग करने से आपको केवल वही पुनः संकलित करने के लिए अनुकूलन करने से लाभ मिलता है जो आवश्यक है।

  • व्यावहारिक: बड़ी परियोजनाओं के लिए, %c अधिक उपयुक्त है।

निष्कर्ष

एक अच्छी तरह से संरचित मेकफ़ाइल परियोजना प्रबंधन को आसान बनाती है और संकलन त्रुटियों से बचाती है। इन नियमों और सर्वोत्तम प्रथाओं का पालन करके, आप एक कुशल और रखरखाव योग्य मेकफ़ाइल बना सकते हैं।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/ashcript/comprendre-le-makefile-exemple-avec-le-langage-c-47n9 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3