2012-12-15 15 views
31

पर सी प्रोग्राम को संकलित और चलाने के लिए कैसे करें मैं अपने विश्वविद्यालय में कक्षा के लिए सी सीख रहा हूं और अपने मैक (ओएसएक्स शेर 10.7 चल रहा है) पर टेक्स्टवंग्लर टेक्स्ट एडिटर का उपयोग करके प्रोग्राम लिखना चाहता हूं। एक बार जब मैं .c फ़ाइल लिखता हूं, तो मैं इसे gcc का उपयोग करके संकलित करता हूं। मैंने ऐप्पल डेवलपर टूल्स से कंपाइलर डाउनलोड किया।मैक ओएस एक्स

इसे कमांड लाइन टूल्स डाउनलोड में शामिल किया गया है। मैं टर्मिनल का उपयोग कर फ़ाइल का पता लगाता हूं, इसे gcc filename.c का उपयोग करके संकलित करता हूं जहां a.out निष्पादन योग्य फ़ाइल बनाई जाती है। हालांकि, जब मैं "a.out" या "/a.out" टाइप करता हूं तो मुझे निम्न संदेश मिलते हैं: "-bash: a.out: आदेश नहीं मिला" या "-bash: /a.out: ऐसी कोई फ़ाइल या निर्देशिका नहीं "। मैंने सफलतापूर्वक संकलित किया है और इस विधि का उपयोग करने से पहले लिनक्स सिस्टम पर सी प्रोग्राम चलाए हैं। मैं अपने मैक पर क्या गलत कर रहा हूँ?

./a.out 

उत्तर

40

आप संकेत मिलता है कि निष्पादन, वर्तमान निर्देशिका में है के रूप में वर्तमान निर्देशिका पथ में नहीं है एक बिंदु जोड़ने की जरूरत .out

+0

कि यह किया! धन्यवाद! – JT9

+2

@JTWheeler, आप अपनी ऑब्जेक्ट फ़ाइल का नामकरण करने पर भी विचार कर सकते हैं क्योंकि यह उसी निर्देशिका में मैन्युअल रूप से एकाधिक सी प्रोग्रामों को संकलित करते समय ओवरराइट होने से रोक देगा। क्या करें 'gcc myprog1.c -o myprog1।ओ 'और इसे '।/myprog1.o' करके चलाएं। केवल एक सलाह। और वैकल्पिक रूप से आप कोड का अभ्यास करने के लिए जीसीसी के बजाय क्लैंग का उपयोग कर सकते हैं क्योंकि यह बेहतर त्रुटि विवरण देता है। – Bharat

3

अपने अनुमतियों के साथ chmod + x एक निष्पादन योग्य तैयार करना न भूलें:

+3

जीसीसी यह आपके लिए करता है ... chmod – benjarobin

+0

चलाने की आवश्यकता नहीं है, लेकिन यह अच्छा अभ्यास है क्योंकि हर कोई जीसीसी का उपयोग नहीं कर रहा है। – MichaelM

4

आप स्लैश के सामने एक बिंदु जोड़ने के लिए:

./a.out 

/a.out रूट फ़ोल्डर में एक कार्यक्रम पर अमल करने की कोशिश करेगा (/)।
a.out आपके प्रोग्राम को पाथ पर्यावरण चर में परिभाषित सभी फ़ोल्डर्स में देखेगा।

मैंने सफलतापूर्वक संकलित किया है और इस विधि का उपयोग करने से पहले लिनक्स सिस्टम पर सी प्रोग्राम चलाए हैं। मैं अपने मैक पर क्या गलत कर रहा हूँ?

आपको लिनक्स पर भी ऐसा करना है।

17

आप बस एक चीज़ याद कर रहे हैं! "/a.out" के बजाय यह "./a.out" होना चाहिए। एक और उपयोगी बात आउटपुट को बदल रही है ताकि आपके पास कई संकलित प्रोग्राम हो सकें। सीधे शब्दों में, केवल एक चीज आप टर्मिनल में डाल करने की आवश्यकता है निम्नलिखित (आप चाहते हैं क्या साथ रिक्त स्थान को भरने)

gcc nameofprogramyouwrote.c -o whatyouwanttheprogramtobenamed 

अच्छी किस्मत है!

-2

आपको एक कंपाइलर की आवश्यकता होगी। हालांकि XCode स्थापित करना सबसे आसान तरीका है। इस तरह से आप "जीसीसी" के लिए उपयोग इस प्रकार मिल जाएगा,,

gcc -o mybinaryfile mysourcefile.c 

तो इस तरह इसे चलाने के।

./mybinaryfile 

आशा है कि इससे मदद मिलती है!

0

बनाने के लिए:

gcc -Wall -o yourFile yourFile.c 

तब निष्पादित करने के लिए:

./yourFile