2016-07-18 5 views
5

मेरे पास एक सीएमके क्यूटी परियोजना है जो std::make_unique सहित कई सी ++ 14 सुविधाओं का उपयोग करती है। आम तौर पर यह या तो द्वारा नियंत्रित किया जाएगा:क्यूटी 5.6 से क्यूटी 5.7 में स्विचिंग - नामस्थान एसडीडी में "कोई सदस्य 'make_unique'

LIST(APPEND CMAKE_CXX_FLAGS -std=c++14) 

या

ADD_COMPILE_OPTIONS(-std=c++14) 

मैं 5.7 करने के लिए संस्करण 5.6 से परियोजना अपग्रेड करना चाहते हैं, लेकिन एक परीक्षण के निर्माण के दौरान त्रुटि

के साथ कई विफलताओं थे

नाम स्थान एसटीडी में कोई सदस्य 'make_unique'

मैंने सभी उचित शीर्षकों को सत्यापित कर लिया है और संकलन विकल्प जगह पर हैं, और किसी भी पर्यावरण की समस्या से इंकार कर दिया है। क्यूटी 5.7 का उपयोग करने के साथ यह निश्चित रूप से एक मुद्दा है। क्या कोई कामकाज है?

उत्तर

9

तो यह पता चला है कि यह known problem with CMake/Qt 5.7 है। जाहिर है, CMake 3.1 के बाद से है, जो सी ++ मानक CMake में उपयोग करने के लिए परिभाषित करने के लिए उचित तरीके से

SET(CMAKE_CXX_STANDARD 14) 

क्यूटी 5.7 के रूप में साथ है CMAKE_CXX_STANDARD के लिए को छोड़कर किसी भी विधि का उपयोग कर C++ 14 त्रुटियों की तरह का परिणाम देगा प्रश्न में उल्लिखित एक। इस विधि का उपयोग करके मेरे निर्माण के लिए सभी त्रुटियों को मंजूरी दे दी गई।

अनजाने में, बग रिपोर्ट बहुत रोचक पढ़ना है, क्योंकि मूल रूप से इस समस्या को रिलीज अवरोधक माना जाता था, फिर एक ज्ञात मुद्दे पर डाउनग्रेड किया गया था, और अंततः (प्रतीत होता है) known issue list से भी शुद्ध हो गया था।

+2

*** बग रिपोर्ट बहुत दिलचस्प पढ़ने *** सहमत है, मुद्दा निश्चित रूप से बंद कहता है। यह निश्चित रूप से बंद करने के लिए अजीब है लेकिन समस्या को ठीक करने के लिए बस दस्तावेज़ मौजूद है। – drescherjm