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

एकाधिक .cpp फ़ाइलों को एक ही बाइनरी में कैसे संकलित और लिंक करें?

2024-11-11 को प्रकाशित
ब्राउज़ करें:845

How to Compile and Link Multiple .cpp Files into a Single Binary?

एकाधिक .cpp फ़ाइलों को एक बाइनरी में कैसे संकलित और लिंक करें

इस लेख का उद्देश्य एकाधिक .cpp फ़ाइलों को एक बाइनरी में संकलित करने के प्रश्न का समाधान करना है .o ऑब्जेक्ट और उन्हें एक बाइनरी में लिंक करना। ]SRC_DIR = ./src OBJ_DIR = ./obj SRC_FILES = $(वाइल्डकार्ड $(SRC_DIR)/*.cpp) OBJ_FILES = $(patsubst $(SRC_DIR)/%cpp,$(OBJ_DIR)/%o,$(SRC_FILES)) main.exe: $(OBJ_FILES) जी $(LDFLAGS) -o $@ $^ $(OBJ_DIR)/%o: $(SRC_DIR)/%cpp g $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $

स्पष्टीकरण:

SRC_DIR = ./src
OBJ_DIR = ./obj
SRC_FILES = $(wildcard $(SRC_DIR)/*.cpp)
OBJ_FILES = $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRC_FILES))

main.exe: $(OBJ_FILES)
    g   $(LDFLAGS) -o $@ $^

$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
    g   $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
निर्दिष्ट करता है स्रोत .cpp फ़ाइलों वाली निर्देशिका। SRC_DIR में सभी .cpp फ़ाइलों की सूची। &&&] अंतिम बाइनरी का नाम।

CXXFLAGS: सी कंपाइलर झंडे।

  • निर्भरता ग्राफ़ पीढ़ी
  • स्रोत और ऑब्जेक्ट फ़ाइलों के बीच स्वचालित रूप से निर्भरता उत्पन्न करने के लिए, निम्नलिखित जोड़ें मेकफ़ाइल:
  • CXXFLAGS = -MMD -include $(OBJ_FILES:.o=.d)
  • Best Practices
  • यह दृष्टिकोण आमतौर पर कई सी फाइलों को संकलित और लिंक करने के लिए उपयोग किया जाता है। हालाँकि, अतिरिक्त मार्गदर्शन और उन्नत विकल्पों के लिए जीएनयू मेक मैनुअल का संदर्भ लेना आवश्यक है।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3