में संकलित करता है अब मैं सी ++ का अध्ययन कर रहा हूं। मैं एक मेकफ़ाइल चाहता हूं जो निष्पादन योग्य को अलग करने के लिए वर्तमान निर्देशिका में सभी सीपीपी फ़ाइलों को संकलित करेगा। उदाहरण के लिए:मेकफ़ाइल जो निर्देशिका में सभी सीपीपी फ़ाइलों को अलग निष्पादन योग्य
एक निर्देशिका में 3 C++ फ़ाइलें, जैसे examp1.cpp, examp2.cpp और examp3.cpp देखते हैं। मैं एक makefile जो संकलन और उन्हें लिंक और examp1.exe दे देंगे चाहते हैं, examp2.exe और examp3.exe
मैं एक bash स्क्रिप्ट बनाया है उन सभी को संकलन और व्यय बनाने के लिए लेकिन मुझे लगता है; ऐसा करने का यह सही तरीका नहीं है।
मेरे पास ".c" के लिए मेकफ़ाइल है, लेकिन ऐसा लगता है कि यह यहां काम नहीं करता है। यह केवल ऑब्जेक्ट फाइलें बना रहा है और वास्तव में इसे लिंक नहीं कर रहा है। यह इस प्रकार है:
SRCS=$(wildcard *.c)
OBJS=(SRCS:.c=.o)
all: $(OBJS)
ऊपर कोड सभी नए और संशोधित "ग" वर्तमान निर्देशिका में एक ही नाम के साथ फ़ाइलों के लिए "ओ" फ़ाइलें संकलित करता है। "सभी कर" या कुछ भी, एक सरल का उपयोग करके
for i in ./*.cpp
do
g++ -Wno-deprecated $i -o `basename $i .cpp`".exe"
done
इसका मतलब यह है मैं चाहता हूँ जो कुछ भी "सीपीपी" फ़ाइलें मुझे लगता है कि निर्देशिका में डाल दिया:
बैश स्क्रिप्ट मैं निष्पादनयोग्य बनाने के लिए उपयोग कर रहा हूँ इस प्रकार है जैसे कि इसे संकलित करना चाहिए।
all: examp1.exe examp2.exe examp3.exe
कि के डिफ़ॉल्ट नियमों का उपयोग अपने तीन कार्यक्रमों को बनाने के लिए होगा:
क्या आपने मेकफ़ाइल बनाने का प्रयास करने का कोई प्रयास किया है? यदि ऐसा है तो इसे पोस्ट करें ताकि हम आपकी मदद कर सकें। शुरू करने के लिए [प्रलेखन] (http://www.gnu.org/software/make/manual/make.html) उपलब्ध है। – Joe
बनाने के संस्करण एक आपूर्तिकर्ता से दूसरे में भिन्न होते हैं। आप क्या उपयोग कर रहे हैं? क्या आप लिनक्स पर जीएनयू मेक का उपयोग कर रहे हैं? माइक्रोसॉफ्ट विंडोज/विजुअल सी ++ पर बनाओ? –
क्या आपने एक मेकफ़ाइल लिखने का प्रयास किया है जो * एक * स्रोत फ़ाइल संकलित करेगा और निष्पादन योग्य होगा? – Beta