2012-07-30 14 views
5

int करने के लिए सेट करने के लिए क्या कोई विकल्प वैरिएबल प्रकार या int C++ कोड लिनक्स में जी ++ संकलक के साथ संकलित की है कि करने के लिए चर प्रकार सेट करने के लिए छोड़ देते हैं है। (जैसा कि मैंने सोलारिस से linux को पोर्टिंग कर रहा हूँ)सी में कोई भी विकल्प ++ वैरिएबल प्रकार डिफ़ॉल्ट

const bufLen = 2000; 

संकलन सोलारिस में ठीक चला गया।

एक और बात, मैं (फ़ाइल पर नियंत्रण है न यह के रूप में के रूप में यह

जब से मैं नहीं कर सकते C++ फ़ाइल को बदलने (बाइनरी के रूप में किसी तीसरे पक्ष द्वारा प्रदान की) कुछ पार्सर द्वारा उत्पन्न होता है

error: ISO C++ forbids declaration of `bufLen` with no type 

संपादित करें: उत्पन्न होता है संकलन से पहले हर), मैं (++ जी के) कुछ विकल्प की जरूरत है तो मैं को दबाने के लिए संकलन के दौरान शामिल कर सकते हैं/त्रुटि को हल

जानकारी: विकल्प वर्तमान में मैं -c -fPIC -Wno-deprecated -m32 -O2 -ffriend-injection -g

उपयोग कर रहा हूँ विकल्पों में से किसी को भी मुझे परेशानी खड़ी कर रहा है (या अन्य प्रभावित करते हैं)?


अग्रिम

+1

क्या आप वाकई सी ++ (और सी नहीं) फ़ाइल हैं? सी 8 9 को 'int' को छोड़ा जाने की अनुमति है। – avakar

+2

क्या आप इसे सी कोड के रूप में संकलित कर सकते हैं? दूसरे शब्दों में सी कंपाइलर का उपयोग करें और सी ++ कंपाइलर नहीं। – sashang

+0

@sashang: यह सी ++ फ़ाइल सी फाइल नहीं है। मैंने अभी एक पंक्ति का उल्लेख किया है जो मुझे 10,000 लाइन पार्सर से उत्पन्न सी ++ फ़ाइल – Makesh

उत्तर

2

AndersK के लिए धन्यवाद जो मुझे एक समाधान दिया

मैं जी के साथ ++ जो मेरी समस्या का समाधान

संदर्भ -fms-extensions का उपयोग कर संकलन की कोशिश की ([मेरे सवाल नीचे] टिप्पणियों के माध्यम से): http://gcc.gnu.org/onlinedocs/gcc-3.4.4/gcc/C-Dialect-Options.html

पुनश्च: दृश्यता के लिए, मैंने उत्तर खंड में उत्तर जोड़ा। क्रेडिट वास्तव में उत्तर देने वाले व्यक्ति के पास जाते हैं :)

+0

अपने कोड को संकलित करने के लिए -fms-एक्सटेंशन का उपयोग करने की विडंबना का एहसास है? भाषा में माइक्रोसॉफ्ट विशिष्ट एक्सटेंशन (http://gcc.gnu.org/ml/gcc-patches/1999-08n/msg00363.html) के समर्थन को सक्षम करने के लिए -एफएमएस-एक्सटेंशन जीसीसी में जोड़ा गया था। मुझे गंभीरता से संदेह है कि सोलारिस से लिनक्स तक आपके द्वारा संग्रहीत मूल कोड में माइक्रोसॉफ्ट से संबंधित कुछ भी है। मेरा अनुमान है कि वास्तविक मुद्दा कोड जनरेटर सी कोड उत्पन्न कर रहा है, और आपकी समस्या यह है कि आप सी ++ कंपाइलर के साथ सी कोड संकलित कर रहे हैं। सी कंपाइलर का उपयोग करने के लिए जीसीसी को बताने के लिए बस कंपाइलर विकल्पों को बदलें, जैसा कि अन्य लोगों ने नोट किया है। – sashang

1

धन्यवाद -ansi या -std=c89 की कोशिश करो। http://gcc.gnu.org/onlinedocs/gcc-4.0.2/gcc/C-Dialect-Options.html

+0

अगर फ़ाइल में वास्तव में C++ (शुद्ध सी के विपरीत) कोड होता है तो यह काम नहीं करेगा। –

+0

उस स्थिति में यह त्रुटि संदेश – Paranaix

+0

@Paranaix द्वारा बताए गए आईएसओ कॉमफॉर्म सी ++ कोड नहीं है: इस प्रकार मैं संकलित कर रहा हूं:/usr/bin/g ++ xyz.cc -c -fPIC -Wno-deprecated -m32 -O2 -ffriend -इनजेक्शन-जी -आई/some_inc_dirs -o xyz.o ... क्या इससे मदद मिलेगी ?? – Makesh