2010-10-18 8 views
19

मैं एक .cpp फ़ाइल पर एक ग्राम ++ आदेश जारी करने के बाद इन त्रुटियों को मिल पहचान नहीं: त्रुटि: 'exit' इस दायरे त्रुटि में घोषित नहीं किया गया था: 'printf' इस दायरे में घोषित नहीं किया गया थासी ++ पर लिनक्स) से बाहर निकलने की तरह आदेश (और printf()

समस्या यह है कि जब मैंने इस प्रोग्राम को किसी अन्य लिनक्स मशीन पर संकलित किया, तो सब ठीक हो गया। मैंने चारों ओर खोज करने की कोशिश की, लेकिन मुझे पता चला कि मुझे 'stdlib.h' जैसी फ़ाइलों को शामिल करने की आवश्यकता है।

क्या यह मेरे ओएस पर कुछ लाइब्रेरी गायब हो सकता है? यदि हां, तो यह क्या हो सकता है?

+4

कृपया कोड पोस्ट करें, आप शायद हेडर गायब हैं। – birryree

+0

या एक घोषणा का उपयोग। –

उत्तर

27

जीसीसी के हाल के संस्करणों को प्रोग्रामर को क्या जिम्मेदारियों को पूरा करने की आवश्यकता है, इस बारे में कठोर हो गया है। cstdlib, cstdio, आदि शीर्षलेख शामिल करें और इन कार्यों को std नामस्थान से एक्सेस करें।

+0

# शामिल # शामिल नामस्थान std का उपयोग कर; यह वर्तमान शीर्षलेख है। किसी भी तरह यह अन्य लिनक्स ओएस पर इस के साथ काम करता है, और मुझे यह पता लगाने की ज़रूरत है कि कैसे। इस पर अतिरिक्त शीर्षलेख जोड़ना इस समय एक विकल्प नहीं है। – Max

+2

फिर जीसीसी के हाल के संस्करणों के तहत इसे संकलित करना * इस समय भी एक विकल्प नहीं है। तुम्हारा कॉल। –

+1

हम्म, ठीक है। क्या इसे रोकने के लिए कोई रास्ता है? शायद कहीं कुछ स्थापित करें या कुछ पैरामीटर बदलें? क्या आपके पास कोई विचार है कि इस परिवर्तन के जीसीसी के कौन से संस्करण हुए थे? – Max

2

आप एक त्वरित (और गंदे) की जरूरत होती हैं, तो कोशिश तय:

using namespace std; 

यह भी सुनिश्चित करें कि आप उचित कब हेडर के कर रहे हैं।

3

टर्मिनल में: - जब आप आदमी बाहर निकलने के बारे में: - यह दिखा देंगे

exit - cause normal process termination 

SYNOPSIS # शामिल stdlib.h

void exit(int status); 

तो आप शीर्ष लेख # शामिल stdlib परिभाषित करने के लिए की आवश्यकता है। ज

9

विशेष रूप ‘exit’ was not declared in this scope के लिए सभी की जरूरत है:

#include <stdlib.h> 
संबंधित मुद्दे