का उपयोग कर एक साथ सी और सी ++ फ़ाइलों को संकलित करना मैं जीसीसी का उपयोग करके सी और सी ++ स्रोतों को संकलित करने की कोशिश कर रहा हूं।जीसीसी
gcc -std=c++0x test.cpp -std=c99 test.c -lstdc++
अब, यह ठीक काम करता है, सिवाय इसके कि मैं दो चेतावनी मिलता है।
cc1plus: warning: command line option "-std=c99" is valid for C/ObjC but not for C++
cc1: warning: command line option "-std=c++0x" is valid for C++/ObjC++ but not for C
इसलिए मैं इस सेटअप के साथ -Werror
का उपयोग नहीं कर सकता। क्या इन चेतावनियों को किसी भी तरह दबाया जा सकता है?
आप क्या कर रहे हैं _think_ आप जो कर रहे हैं उससे बहुत अलग है। आप पहले भाषा मानक को C++ 0x पर सेट कर रहे हैं और फिर इसे C99 पर सेट कर रहे हैं, जो _both_ फ़ाइलों के लिए केवल C99 का उपयोग करने के बराबर है। हालांकि, सी 99 मोड में सी ++ संकलित करना असंभव है, इसलिए '.cpp' फ़ाइल के लिए, कंपाइलर अपने डिफ़ॉल्ट पर वापस आ जाएगा, जो सी ++ 98 है। इसलिए आप C99 में C फ़ाइल को संकलित कर रहे हैं, और C++ 98 में C++ फ़ाइल को संकलित कर रहे हैं। पार्सिंग विकल्पों के दौरान, जीसीसी देखता है कि आपके पास भाषा संस्करण विकल्प के लिए असंगत फ़ाइलें हैं, इस प्रकार यह प्रत्येक विकल्प के लिए चेतावनियों को आउटपुट करता है। – Damon