मैं अपनी मेक फ़ाइल चलाने का प्रयास कर रहा हूं, हालांकि मुझे निम्नलिखित दो त्रुटियां मिल रही हैं:

बनाना: सी: आदेश नहीं मिला

तथा

बनाना: ओ: आदेश नहीं मिला

मैं इसे साइबरविन के अंदर करने का प्रयास कर रहा हूं। मेरे पास जी ++ है और उस पर स्थापित है, हालांकि जब मैं मेक फ़ाइल चलाता हूं तो मुझे ये त्रुटियां मिलती हैं।

कोई विचार?

मेकफ़ाइल:

all: MergeSort clean

MergeSort: main.o MergeSort.o
    $g++ -o MergeSort main.o MergeSort.o

main.o: main.cpp MergeSort.h
    $g++ -c main.cpp

MergeSort.o: MergeSort.cpp MergeSort.h
    $g++ -c MergeSort.cpp

clean:
    rm -rf *o

cleanall:
    rm -rf *o *exe
2
Matt 10 मार्च 2011, 10:26
1
अपना मेकफ़ाइल पोस्ट करें, और आप इसे कैसे चला रहे हैं।
 – 
Yann Ramin
10 मार्च 2011, 10:28
codepad.org/UPInzxwg यह मेक फाइल है और मैं निर्देशिका में रहते हुए "मेक" टाइप करके इसे चला रहा हूं कि यह अंदर है (वहां केवल मेरी फाइलें और मेकफ़ाइल हैं।)
 – 
Matt
10 मार्च 2011, 10:31
मैंने मेकफ़ाइल को प्रश्न के मुख्य भाग में जोड़ा। SO पर कोड पोस्ट करते समय कोडपैड या पेस्टबिन जैसी साइटों का उपयोग न करें: यदि आपका कोड नमूना कभी गायब हो जाता है, तो प्रश्न निरर्थक हो जाएगा। इसके अलावा स्रोत कोड देखने के लिए एक और वेब पेज खोलना वास्तव में कष्टप्रद है, खासकर जब यह इतना छोटा हो।
 – 
ereOn
10 मार्च 2011, 11:24

2 जवाब

सबसे बढ़िया उत्तर

आपको $ को $g++ लाइनों से हटाना होगा। यह कुछ ऐसे चर का विस्तार करने की कोशिश कर रहा है जो मौजूद नहीं है, और आपके आदेशों से "$g++ -" को निगल रहा है।

एक चर का उपयोग करने के लिए वाक्य रचना है:

$(CXX) -c main.cpp

इस मामले में, CXX C++ कंपाइलर का पथ है, जिसे आपके लिए परिभाषित किया गया है। आप अपनी मेकफ़ाइल में निम्न पंक्ति जोड़कर इसे बदल सकते हैं:

CXX = g++

यदि आप मेक कमांड चल रहा है, तो वापस गूंजने से बचने की कोशिश कर रहे हैं, $ के बजाय @ का उपयोग करें।

6
Daniel Gallagher 10 मार्च 2011, 10:34

$g++ उस मेकफ़ाइल में परिभाषित नहीं है, इसलिए आदेश बन जाता है

-o MergeSort main.o MergeSort.o

तथा

-c main.cpp

या तो $ g++ से $ ड्रॉप करें और g++ का उपयोग करें, या अपने मेकफ़ाइल में वेरिएबल को परिभाषित करें।

CXX = g++
all: MergeSort clean

MergeSort: main.o MergeSort.o
    $CXX -o MergeSort main.o MergeSort.o

main.o: main.cpp MergeSort.h
    $CXX -c main.cpp

MergeSort.o: MergeSort.cpp MergeSort.h
    $CXX -c MergeSort.cpp

clean:
    rm -rf *o

cleanall:
    rm -rf *o *exe
1
Dirk 10 मार्च 2011, 10:36
मुझे लगता है कि आपको जीएनयू मेक के लिए $CXX द्वारा $(CXX) का आदान-प्रदान करना चाहिए (ओपी के बारे में पूछने लगता है)।
 – 
Wolf
10 पद 2019, 18:31