2011-10-24 23 views
13

में सी ++ 11 समर्थन को सक्रिय करना मैंने सी ++ 11 सुविधाओं के साथ थोड़ा सा खेलने के लिए क्लैंग संस्करण 3.0 को डाउनलोड और बनाया है, हालांकि मुझे यह त्रुटि मिलती है (हालांकि मैं am-Wc++11-extensions ध्वज का उपयोग कर रहा हूं)।क्लैंग

एस: \ LLVM \ कोड> बजना ++ exe -WC++ 11 एक्सटेंशन variadic.cpp
variadic.cpp:। 4: 19: चेतावनी: variadic टेम्पलेट्स एक सी ++ 11 विस्तार कर रहे हैं [-WC++ 11 एक्सटेंशन]
विंडोज 7 (64 बिट) पर VS10 के साथ टेम्पलेट < typename ... args >

मेरे द्वारा बनाए गए बजना और निर्माण सफलतापूर्वक पारित कर दिया।


संपादित करें: कार्यक्रम निष्पादन योग्य नहीं: रूप @cli_hlt ने बताया कि यह एक चेतावनी नहीं एक त्रुटि है, त्रुटि कुछ मैं पेस्ट नहीं किया निष्पादित करने के लिए आदेश में असमर्थ है। इसके लिए मूल कारण यह था कि link.exe पथ में नहीं था। एक बार जब मैं वीएस कमांड प्रॉम्प्ट से भाग गया तो सब ठीक था।

+23

मुझे लगता है कि आपने मूल रूप से 'clang ++ variadic.cpp' किया था, चेतावनी देखी और चेतावनी ध्वज को दूर जाने की चेतावनी झंडा जोड़ा। सी -++ 03 मोड (डिफ़ॉल्ट मोड) में संकलित करते समय '-WC++ 11-एक्सटेंशन' डिफ़ॉल्ट रूप से चालू होता है, इसलिए आपने इसे देखा है। आप इसे '-Wno-C++ 11-एक्सटेंशन' का उपयोग करके बंद कर सकते हैं, हालांकि' -std = C++ 11' – bames53

+0

@ bames53 का उपयोग करके सी ++ 11 मोड में संकलित करना शायद बेहतर है, धन्यवाद, यह बिल्कुल ठीक है। – Motti

उत्तर

20

आपको एक चेतावनी मिल रही है, कोई त्रुटि नहीं।

-W स्विच का उपयोग कंपाइलर चेतावनियों को सक्षम करने के लिए किया जाता है। तो मेरी समझ के लिए, -WC++ 11-एक्सटेंशन का उपयोग करके आप संकलक को चेतावनी देते हैं कि आप C++ 11 एक्सटेंशन का उपयोग कर रहे हैं।

और यह ठीक है कि यहां क्या होता है।

+2

ठीक है आप एक मूर्ख हैं। चेतावनियों के बाद त्रुटि "निष्पादित करने में असमर्थ त्रुटि: प्रोग्राम निष्पादन योग्य नहीं है" लेकिन यह 'int main() {} 'के लिए भी होता है। मेरी गलती.. – Motti

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