2012-06-12 11 views
9

मुझे आश्चर्य है कि मेरा सी प्रोग्राम किसी भी जानकारी को प्रिंट क्यों नहीं करता है। मैं प्रोग्रामिंग के लिए 100% नया हूं, और पिछले कुछ हफ्तों में रुबी और पायथन में कुछ चीजें सीखने में सक्षम हूं, लेकिन मुझे सी सामान के साथ कहीं भी नहीं मिल रहा है। यहाँ कुल आधारभूत, साधारण प्रोग्राम है कि हर कोई पहले सीखता है:मुझे बहुत सरल हैलो वर्ल्ड प्रोग्राम के लिए कोई आउटपुट क्यों नहीं मिलता?

#include <stdio.h> 

int main() 

    { 
     printf("Hello World\n"); 
     return 0; 
    } 

तो मुझे लगता है कि लिखा मिल गया है, और मैं hello.c रूप में सहेजें। अब मैं निर्देशिका में सीडी हूं जहां यह है, और फिर मैं

gcc hello.c 

और कुछ नहीं होता - कोई त्रुटि नहीं, बस कुछ भी नहीं। अगर मैं बजाय लिखने

gcc hello.c -o hello 

एक नई निष्पादन योग्य फ़ाइल मेरी निर्देशिका के लिए लिखा है, और जब मैं इसे खोलने, यह सामान्य कमांड लाइन की तरह लग रहा है, और "नमस्ते दुनिया" वहाँ लिखा है, के रूप में मैं अपने टर्मिनल में होने की उम्मीद पहली बार।

मैं भी एक निष्पादन योग्य ही hello.c बनाने की कोशिश की, लेकिन जब मैं यह है कि मैं

syntax error near unexpected token `(' 
`int main()' 
+0

धन्यवाद - हाँ, इस पर बहुत नया है, और आपकी स्पष्ट और सरल प्रतिक्रिया के लिए सभी को धन्यवाद। इसे अब पा लिया है! – user1451632

उत्तर

12

आप टाइप करते हैं

gcc hello.c 

और कुछ भी नहीं, ऐसा होता है कि उम्मीद की जानी है। या अधिक सटीक रूप से, जीसीसी एक निष्पादन योग्य को डिफ़ॉल्ट नाम से संकलित करेगा, जो मेरे लिए a.out है। यदि मैं कमांड लाइन पर ./a.out टाइप करने के लिए था, तो मुझे आउटपुट दिखाई देता है।

मुझे लगता है कि यहां आपकी रूबी/पायथन पृष्ठभूमि से थोड़ा बड़ा वैचारिक मुद्दा हो सकता है। रुबी और पायथन (आमतौर पर) भाषाएं व्याख्या करते हैं, जिसका अर्थ है कि जब आप एक स्क्रिप्ट फ़ाइल बनाते हैं, तो आप इसे निष्पादन योग्य के रूप में चिह्नित कर सकते हैं और some magic के माध्यम से ओएस एक प्रोग्राम शुरू करेगा जो फाइलें पढ़ता है और उन्हें आपके लिए निष्पादित करता है। सी, हालांकि, संकलित है। तो जब आप जीसीसी चलाते हैं, तो यह आपकी स्रोत फ़ाइल लेता है और इसे निष्पादन योग्य में बदल देता है, या तो डिफ़ॉल्ट या निर्दिष्ट नाम के साथ।इस बिंदु पर, जब तक संकलन प्रक्रिया में कोई समस्या न हो, तब तक कोई भी आउटपुट देखने की उम्मीद नहीं करेगा। फिर आप ./hello चला सकते हैं, जो एक निष्पादन योग्य है, और अपना आउटपुट देखें।

यह भी बताता है कि आप hello.c को निष्पादन योग्य के रूप में क्यों चिह्नित नहीं कर सकते हैं और इसे चला सकते हैं। इसे पहले निष्पादन योग्य में संकलित करने की आवश्यकता है। ऐसा लगता है कि सिस्टम यह दिखा रहा है कि यह एक शेल स्क्रिप्ट है, जो नहीं है, और आपको एक वाक्यविन्यास त्रुटि दे रहा है।

5

पहली बार मिलता है, अपने निष्पादन योग्य "a.out" (या पर "a.exe" नामित किया गया था विंडोज़), जो कि जीसीसी द्वारा निष्पादन योग्य को दिया गया ऐतिहासिक डिफ़ॉल्ट नाम है।

आप खुलने और क्रियान्वित करने, भी के बीच स्रोत और निष्पादन के बीच अंतर पता लगाना कुछ समय बिताना चाहिए, और ...

7

gcc hello.ca.out
gcc hello.c -o hello नामित नाम की एक फ़ाइल उत्पन्न होगा एक फ़ाइल उत्पन्न होगा hello

ये निष्पादन योग्य फ़ाइलें हैं, और आउटपुट प्राप्त करने के लिए आपको इसे निष्पादित/चलाने की आवश्यकता है।

भागो इन

./a.out या ./hello

7

जीसीसी hello.c -ओ हैलो निर्दिष्ट करता है के रूप में है कि आप एक निष्पादन Hello.exe नामित बनाना चाहते हैं।

आपको सभी सी फाइलों को संकलित करना होगा और फिर प्रोग्राम चलाने के लिए निष्पादन योग्य चलाएं। आप वास्तव में .c फ़ाइलों को नहीं चला सकते हैं। जब आप exe निर्दिष्ट नहीं करते हैं, तो यह सिर्फ संकलित करता है। तथ्य यह है कि आपके पास कोई त्रुटि नहीं है, क्योंकि इसका मतलब है कि आपका कोड सही है! :)

3

प्रोग्रामिंग में आपका स्वागत है, और स्टैक ओवरफ़्लो!

gcc hello.c 

फ़ाइल को संकलित करता है और निष्पादन योग्य फ़ाइल 'a.out' उत्पन्न करता है, लेकिन इसे निष्पादित नहीं करता है। यही कारण है कि आपकी कमांड लाइन पर और कुछ नहीं हुआ। बस के रूप में आप के लिए 'हैलो' अगर मैं सही ढंग से समझ किया

./a.out 

:
निष्पादन करने के लिए, आप टाइप करना होगा।
यदि आप सी में प्रोग्राम करना चाहते हैं तो आपको संकलन, लिंकिंग और निष्पादन के बीच अंतर सीखना होगा, अपने आप को एक अच्छी शुरुआत करने वाली किताब या ट्यूटोरियल ढूंढें, यह इसके लायक है!
चीयर्स!

0

आप ऐसा अपने hello.c स्रोत फ़ाइल पर सुरक्षा सेट

syntax error near unexpected token `(' 
`int main()' 

त्रुटि मिली और इसे चलाने के लिए कोशिश की।

जीसीसी का उपयोग करना आपके। सी स्रोत फ़ाइल को एक बाइनरी प्रोग्राम में बदल देता है जिसे आप चला सकते हैं।

gcc -o hello hello.c 

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

gcc hello.c -o hello 

जो ठीक है।

सफल संकलन और लिंक जो आप चलाना होगा

./hello 
-1

आप #include<conio.h> सहित करने की कोशिश की है और getch()return 0; से पहले टर्मिनल विंडो प्रदर्शित करने के लिए शामिल हैं हैलो नामक एक आउटपुट फ़ाइल, बनाया।

संबंधित मुद्दे