2012-10-11 12 views
5

मैं एक नमस्ते विश्व कार्यक्रम चलाने के लिए कोशिश कर रहा हूँ, लेकिन त्रुटिशुरुआती: सिंटेक्स त्रुटि से पहले int मुख्य()

./ex1.c: line 3: syntax error near unexpected token `(` 
./ex1.c: line 3: `int main (int argc, char *argv[])' 

या

./ex1.c: 3: ./ex1.c: Syntax error: "(" unexpected 

या

./ex1.c:3: unknown file attribute: i 
./ex1.c:4: parse error near `}' 

हो रही है अजीब बात यह है कि मैंने पहले ही यही कार्यक्रम चलाया था और इसमें कोई समस्या नहीं थी।

यह सुनिश्चित नहीं है कि इन मुद्दों से संबंधित हैं, लेकिन समस्या के बाद यह हुआ कि मैं सीखने के लिए Valgrind को हार्ड 4 में अभ्यास 4 चलाने के लिए स्थापित किया। मुझे एक त्रुटि मिली जिसमें कहा गया कि अनुमति से इनकार किया गया है जिसे मैंने chmod +x का उपयोग करके तय किया था। तब मेरी सभी .c फ़ाइलों को अनुमति की आवश्यकता थी जो वे पहले नहीं थे। मैंने अपनी सभी .c अभ्यास फ़ाइलों के साथ निर्देशिका के लिए chmod -R 0777 किया था। तो अनुमति समस्या ठीक हो गई है लेकिन फिर उपरोक्त त्रुटि शुरू हुई। वे असंबंधित हो सकते हैं लेकिन बस मामले में शामिल करना चाहते थे।

+7

यदि आपको * कोड * के साथ समस्या है, तो कृपया इसे पोस्ट करें। अन्यथा, आप हमारी मदद करने के लिए हमारी अपेक्षा कैसे करते हैं? मैं आपको यह बता सकता हूं कि आपके पास एक अप्रत्याशित '(' लाइन 3 –

+0

है लेकिन इससे मैं कह सकता हूं कि वह '.c' फ़ाइल चला रहा है, और यह कि खोल सी वाक्यविन्यास के बारे में शिकायत कर रहा है ... – nneonneo

+1

आप * अपनी * *। सी फाइलों को निष्पादित अनुमतियां नहीं चाहते हैं, और आप शायद ही कभी * कुछ * * 777 अनुमतियां चाहते हैं (जो सिस्टम पर सभी को पढ़ने-लिखने-निष्पादित अनुमति दें) –

उत्तर

7

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

मान लें कि आपके पास एक लिनक्स/ओएस एक्स मशीन है, इसे संकलित करने के लिए gcc -Wall ex1.c -o ex1 का उपयोग करें (या, अधिक सरल, make ex1)। फिर आप प्रोग्राम चलाने के लिए ./ex1 कर सकते हैं।

+2

मुझे एहसास हुआ कि मैं क्या गलत कर रहा था। मैंने उपयोग किया था लेकिन अभी भी छोड़ रहा था। सी ./ex1। धन्यवाद! – MParker

+1

'gcc -Wall ...' - हमेशा - धन्यवाद। –

+0

@PaulR: हाँ, अच्छी कॉल। – nneonneo

-4

"अपना प्रोग्राम नाम" (जैसे इस मामले में मारियो बनाने) का उपयोग कर प्रोग्राम संकलित करने के बाद, बस ./"your प्रोग्राम नाम "(यह मामला ./mario) का उपयोग करके प्रोग्राम संकलित करें। कार्यक्रम चलाते समय .c जोड़ें नहीं।

+0

ये मेकफ़ाइल का उपयोग करने के लिए निर्देश हैं, जो संभवतः संबंधित नहीं हैं वाक्यविन्यास त्रुटि @MParker है। – Jonatan

+2

इसी तरह का उत्तर _3 साल पहले दिया गया था। –

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